Регулярное выражение подсчитывающее исходящие ссылки

программирование php регулярные выражения regexp пхп

Нужно для одного проекта написать регулярку на php, которая подсчитывала бы сколько исходящих ссылок в тексте той или иной статьи. Извелся весь, но у меня решительно ничего не получается. Ну не дружу я с этими регулярными выражениями. Помогите пожалуйста.
Кто напишет - тому 20 балов!

Примечание:
Интересно а для чего еще этот сервис, если не помогать другим??? А от таких флудеров как Японский Городовой только интернет засирается

Примечание:
я не жадный и поделюсь тем, что нашел сам.

$str="
<a href=url1>name1</a>
<a href=url2>name2</a>
<a href='url3'>name3</a>
<a href=url4>< скобки ></a>
<a href=\"url5\"><b>жирно</b></a>
<a href=url6>\"кавычки\"</a>
<a target=\"<попытка обхитрить программу> хахаха\" href=url7>77777</a>
<a href=url8 target=\"<попытка обхитрить программу> хахаха\" >88888</a>";

echo "<pre>Исходный код:".htmlspecialchars($str)."</pre>";

echo "---------------Вариант 1---------------";

preg_match_all("!<a.*?href=\"?'?([^ \"'>]+)\"?'?.*?>(.*?)</a>!is",$str,$ok);

for ($i=0; $i<count($ok[1]); $i++) {
echo "<li>".$ok[1][$i]." - ".$ok[2][$i];
}

echo "<br>---------------Вариант 2---------------";

preg_match_all("!<a[^>]+href=\"?'?([^ \"'>]+)\"?'?[^>]*>(.*?)</a>!is",$str,$ok);
for ($i=0; $i<count($ok[1]); $i++) {
echo "<li>".$ok[1][$i]." - ".$ok[2][$i];
}

echo "<br>---------------Вариант 3---------------";

preg_match_all("!<a[^>]+href=\"?'?([^ \"'>]+)\"?'?[^>]*>([^<>]*?)</a>!is",$str,$ok);
for ($i=0; $i<count($ok[1]); $i++) {
echo "<li>".$ok[1][$i]." - ".$ok[2][$i];
}

Вопрос закрыт.
Ответы:
Аттракцион невиданной щедрости
Интернет засирается дятлами, которые не могут открыть гугль самостоятельно.
Твой, впрочем, случай не самый запущенный.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.