php регулярка

leo3331
На сайте с 07.01.2007
Offline
154
715

Здравствуйте.

Что поменять в регулярном выражении, чтобы удалялись ссылки только содержащие

http://

ftp://

https://

Сыллки не содержащие: вот такого вида <a href="/li/wefg">анкор</a> оставались не тронутыми

<?php

$text = "<a href='http://wefgweg.ru/сиськи'>Мы любим сиськи</a> ну и просто <a href='ссылка' class='css'>о</a> сиськах <a href='еще'>для</a> примера";

$text = preg_replace('/<[\/]?a[^>]*>/i', '', $text);

echo $text;

?>

LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#1

Не знаю на счёт менять, но работать будет так:

$text = preg_replace("@<a href='(http://|ftp://|https://).*?</a>@smi", '', $text);

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
leo3331
На сайте с 07.01.2007
Offline
154
#2

регулярка вырезает ссылку с анкором, а нада что бы анкор оставался

не подскажешь что поменять надо?

LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#3

$text = preg_replace("@<a href='(http://|ftp://|https://)(.*?)</a>@smi", "$2", $text);

F
На сайте с 11.08.2010
Offline
27
#4

Тогда уже как-то так -

$text = preg_replace("@<a href='(http://|ftp://|https://)(.*?)>(.*?)</a>@smi", "$3", $text);

leo3331
На сайте с 07.01.2007
Offline
154
#5
LEOnidUKG:
$text = preg_replace("@<a href='(http://|ftp://|https://)(.*?)</a>@smi", "$2", $text);

wefgweg.ru/сиськи'>Мы любим сиськи ну и просто <a href='ссылка' class='css'>о</a> сиськах <a href='еще'>для</a> примера

Fenom:
$text = preg_replace("@<a href='(http://|ftp://|https://)(.*?)>(.*?)</a>@smi", "$3", $text);

Мы любим сиськи ну и просто <a href='ссылка' class='css'>о</a> сиськах <a href='еще'>для</a> примера

Во втором случае получилось то что надо.

Спасибо всем

LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#6

Запарился :) Бывает.

leo3331
На сайте с 07.01.2007
Offline
154
#7

получилась рабочая регулярка у меня

$text = preg_replace("@<(.*?)a(.*?)href=('|\")(http://|ftp://|https://)(.*?)>(.*?)</a>@smi", "$6", $text);

но она не обрезает такие ссылки:

как осуществляется <a title="работа на заправке" href="http://azs13.ru/tag/rabota/">работа на заправке</a>

помогите плз )

LEOnidUKG
На сайте с 25.11.2006
Offline
1771
#8

$text = preg_replace("@<a.*?href=('|\")(http://|ftp://|https://).*?>(.*?)</a>@smi", "$3", $text);

leo3331
На сайте с 07.01.2007
Offline
154
#9

$text = "<a href='http://wefgweg.ru/сиськи\">Мы любим сиськи</a> ну и просто <a href='ftp://wefwfe.ru/ссылка' class='css'>о</a>

сиськах <a href='еще'>для</a> примера как осуществляется <a title=\"работа на заправке\" href=\"http://azs13.ru/tag/rabota/\">работа на заправке</a>";

$text = preg_replace("@<a.*?href=('|\")(http://|ftp://|https://).*?>(.*?)</a>@smi", "$3", $text);

результат

Мы любим сиськи ну и просто о сиськах работа на заправке

куда пропадает:

"для примера как осуществляется "

---------- Добавлено 30.04.2012 в 15:12 ----------

вот бы такой шаблон:

<(все что угодно)a(все что угодно)href(все что угодно) ну и дальше содержит http и т.д.

---------- Добавлено 30.04.2012 в 15:15 ----------

просто иногда ссылки коряво ставят до "a" может быть пробел

---------- Добавлено 30.04.2012 в 15:16 ----------

<?php

$text = "<a href='http://wefgweg.ru/сиськи\">Мы любим сиськи</a> ну и просто <a href='ftp://wefwfe.ru/ссылка' class='css'>о</a>

сиськах <a href='еще'>для</a> примера как осуществляется <a title=\"работа на заправке\" href=\"http://azs13.ru/tag/rabota/\">работа на заправке</a>";

$text = preg_replace("@<a.*?href=('|\")(http://|ftp://|https://).*?>(.*?)</a>@smi", "$3", $text);

//$text = preg_replace('/<[\/]?a[^>]*>/i', '', $text);

echo $text;

?>

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