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

12 3
CrewHS
На сайте с 05.08.2007
Offline
31
1673

Доброго времени суток уважаемые программисты. Составил регулярное выражение по удалению ссылок в тексте, но оно вместе с собой забирает и английский текст.

preg_replace("#<a(.*?)\/a>|(h.*?:\/\/)?([a-z0-9- .]+\.[a-z ]*)#si","",$text);

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

У нас всегда можно добавить строительную фирму (http://lobzikov.ru/catg.html) бесплатно.
O
На сайте с 29.05.2008
Offline
195
#1

CrewHS, это можно сделать с помощью htaccess rewrite..

LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#2

Что за адская регулярка? Давайте проще:

preg_replace('@<a.*?>(.*?)</a>@smi',"\\1",$site);

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

LEOnidUKG

Тогда пройдут ссылки вида:


http://www.site.ru
http://site.ru
www.site.ru
h t t p : / / ww w . si t e . r u

CrewHS добавил 16.01.2011 в 01:10

ortegas, причем тут конфигурационные файлы?? Читайте внимательнее сабж

LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#4

А так просто урлы могут быть ещё... вы задачу то нормально ставьте.

Вообще жесть:

h t t p : / / ww w . si t e . r u

Давайте реальную задачу, а не ваши грёзы.

А вдруг там будет домен .рф.... а вдруг домен кириллицей! А вдруг 1 буковка будет русская другая английская!

CrewHS
На сайте с 05.08.2007
Offline
31
#5

Все, задачу решил так:

$text = preg_replace("#<a(.*?)\/a>|(h.*?:\/\/)?([a-z0-9- .]+\.[a-z ]{2,6})#si","",$text)."<br />";

Совсем забыл про это :)

Правда после сайта вида

h t t p : / / ww w . si t e . r u

Остается

h t t p : / /

Но думаю это поправимо! :)

CrewHS добавил 16.01.2011 в 01:23

А вдруг там будет домен .рф.... а вдруг домен кириллицей! А вдруг 1 буковка будет русская другая английская!

Как правило флудят ссылками с целью последующей индексации ПС, а от такого формата толку не будет. Для ПС ссылки и такого формата

h t t p : / / ww w . si t e . r u
вроде как не катируются, но лучше подстраховаться
S
На сайте с 23.05.2004
Offline
316
#6
это можно сделать с помощью htaccess rewrite..

Ну ка покажите это чудо ? :)

Это просто подпись.
CrewHS
На сайте с 05.08.2007
Offline
31
#7

Немного поразмышляв, все же убрал бредовую идею с

h t t p : / / ww w . si t e . r u

и упростил скрипт до подобного вида:

$text = preg_replace("#<a(.*?)\/a>|(http:\/\/)?([a-z0-9-\.]+\.[a-z]{2,6})#si","",$text);

Скрипт убивает ссылки вида:


<a href='http://www.site.ru'>http://www.site.ru</a>
http://www.site.ru
http://site.ru
www.site.ru
site.ru

Надеюсь кому-то пригодиться. Копал в инете, достоенного решения так и не нашел, потому пришлось писать свой. Тема фильтрации ссылок в тексте на морды была всегда актуальна

LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#8
Немного поразмышляв, все же убрал бредовую идею с

Ну вот и отлично :)

А регулярка действительно может помочь :)

p.s. я кстати думал, что анкор нужно было сохранить :(

LinnTroll
На сайте с 12.01.2011
Offline
15
#9

вас не смущает что вырезание по формату site.ru может беды натворить?

http://vps.ua/ (https://vps.ua/clients/aff.php?aff=201) - самый лучший хостинг.
temmokan
На сайте с 18.08.2008
Offline
111
#10

1. Если не путаю, при задании класса символов знак минус (сам по себе) рекомендуется ставить первым в списке. В зависимости от настроек возможны неприятные последствия вплоть до несрабатывания RE.

2. Добавьте тогда до кучи и https-схему.

3. Я правильно понимаю, что такая регулярка выкосит из текста строки вида J.-M.Jarre, J.Smith и тому подобные?

12 3

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