Определение количество внешних url, с учетом всех вариантов написания тега <a>
Вопросы:
1.Коректно ли я написал регулярное выражение?
Выражение работает, но хотелось бы услышать мысли специалистов.
2.Возможно ли стразу вырезать внешние ссылки в одном регулярном выражении.
(пусть domen.ru - сайт у которого, нужно определить кол-во внешних ссылок)
Описание задачи:
Есть задача вырезать все внешние (только внешние) url из тегов <a>:
(если в параметре href указан протокол http - то вероятность, что ссылка внешняя увеличивается, ссылки без http внешними не бывают)
Нужно учесть все варианты, а именно:
Вариант 1:
(url заканчивается знаком ">")
$content_3='<a href=http://www.ya.ru>ссылка</a>';
Вариант 2:
(url заканчивается символом ")
$content_3='<a href="http://www.ya.ru" class=asa>ссылка</a>';
Вариант 3:
(url заканчивается символом ')
$content_3='<a href=\'http://www.ya.ru/\' class=asa>ссылка</a>';
Вариант 4:
(url заканчивается пробелом)
$content_3='<a href=http://www.ya.ru class=asa>ссылка</a>';
Вариант 5:
(url заканчивается переносом строки)
$content_3='<a href=http://www.ya.ru
class=asa>ссылка</a>';
Вырезаю я таким способом :
Код:
$content_3='Варианты ссылок (см. выше)';
preg_match_all("|http://(.*)[>^\"^\'^\s^\n]|U", $content_3, $url, PREG_PATTERN_ORDER);
echo '$url[0][0] = '.$url[0][0].'<br>';
echo '$url[1][0] = '.$url[1][0].'<br>';
preg_match_all("|http://(.*)[>^\"^\'^\s^\n]|U", $content_3, $url, PREG_PATTERN_ORDER);
echo '$url[0][0] = '.$url[0][0].'<br>';
echo '$url[1][0] = '.$url[1][0].'<br>';
Далее, я определяю, является ли ссылка внешней или нет....
Заранее спасибо