Помогите плз с регуляркой

AN
На сайте с 05.06.2004
Offline
243
411

Дамы и господа, подскажите плз, сам че-т туплю...

Нужна регулярка, которая проверяет, есть ли в строке ссылки (т.е.вхождения вида "<a ", "http://", "https://", "www."), причем ссылки не на домен site.ru

Причем предполагается, что ссылок может быть хоть сколько.

Т.е. регулярка должна выдавать: TRUE, если в строке нет ни одной ссылки, либо ссылки есть, но все они - на страницы на домене site.ru; FALSE, если в строке есть хоть одна ссылка не на site.ru.

...или одной лишь регуляркой тут не обойтись?

Размещу ваши баннеры на посещаемых сайтах. Места еще есть! Возможен безнал. (/ru/forum/324945) Нужны копирайтеры/рерайтеры - медики. Пишите в личку. (/ru/forum/676932)
J
На сайте с 02.02.2009
Offline
53
#1

if(!preg_match('|<a[^>]*?href\s*=\s*['"]?http(s)?://(?!site.ru)[^>]+|ismU', $content))

как-то так наверное, не тестил, вслепую накидал

sashka_
На сайте с 27.01.2010
Offline
103
#2

<?php

$s = "<a href=\"http://site.ru/\" > привет </a>";
if (preg_match("#['\"]http://(site.ru.*)['\"]#i",$s))
{
echo "true";
}
else { echo "false";}
?>

пробуй пропускает ссылки если они начинаються на site.ru ...

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
J
На сайте с 02.02.2009
Offline
53
#3
sashka_:
<?php

$s = "<a href=\"http://site.ru/\" > привет </a>";
if (preg_match("#['\"]http://(site.ru.*)['\"]#i",$s))
{
echo "true";
}
else { echo "false";}
?>

пробуй пропускает ссылки если они начинаються на site.ru ...

....

Если ссылок больше чем одна - что делать? Как быть?

sashka_
На сайте с 27.01.2010
Offline
103
#4

подругому не догадываюсь как , только если все ссылки отпарсить регуляркой и делать проверку с твоим сайтом , если ссылка ему равна тогда всё норм если не равна , тогда тушим скрипт. если так пойдёт могу написать

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий