- 1
$text = preg_replace("#<a(.*?)\/a>|(h.*?:\/\/)?([a-z0-9- .]+\.[a-z ]*)#si","",$text);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
$text = preg_replace("#<a(.*?)\/a>|(h.*?:\/\/)?([a-z0-9- .]+\.[a-z ]*)#si","",$text);
Регулярное выражение, задача которого уничтожить все существующие ссылки на сторонние сайты содержащиеся в переменной $text
Друг посчитал, что коду место на этом ресурсе :)
mindfreakthemon 15.01.2011 23:33 # 0
Друг правильно посчитал.
wvxvw 16.01.2011 03:02 # 0
Анонимус 16.01.2011 09:34 # 0
wvxvw 16.01.2011 10:06 # −2
Анонимус 16.01.2011 06:06 # 0
wowerwower 16.01.2011 13:28 # 0
function onlytext($text)
{
$text = preg_replace ("/[^0-9a-zA-Zа-яА-ЯёЁ \.,!@?%-:;()_+=&\n]/", "", $text);
$text = str_replace ("'", "", $text);
return trim($text);
}
Анонимус 18.01.2011 08:09 # 0
wowerwower 02.02.2011 12:28 # 0
wowerwower 16.01.2011 13:25 # 0
preg_replace("#<a(.*?)\/a>|(http:\/\/|https:\/\/)?([a-z0-9-\.]+\.[a-z]{2,6})#si","",$text);
7ion 16.01.2011 15:10 # 0
wowerwower 17.01.2011 10:04 # −3
Если принципиально, то его всегда можно добавить
ftp:\/\/ и все.., но опять же он не добавлялся умышленно к тому же, вы сначало попробуйте, пройдет ли такой домен))
bugmenot 17.01.2011 20:02 # +2
gegMOPO4 16.01.2011 19:34 # 0
wowerwower 17.01.2011 10:07 # −2
wowerwower 17.01.2011 11:25 # −2
Готово. Фильтрует самые распространенные домены (кроме IDN), а текст не убивает и mr.smith тож оставит живым
gegMOPO4 17.01.2011 12:06 # +2
wowerwower 17.01.2011 13:35 # −1
gegMOPO4 17.01.2011 14:22 # 0
А вот ещё: &103;&111;&111;&103;&108;&101;&46;&99;&1 11;&109;
da4ever 18.01.2011 00:18 # −1
.РФ
запилите полный список и положите в паблик. а еще напишите-ка твиттер клиент. их всегда недостаточно!
Lure Of Chaos 16.01.2011 15:50 # −4
во-вторых, быть может, strip_tags или что-то вроде поможет?
wowerwower 17.01.2011 10:03 # −1
<a(.*?)\/a> - вот эта часть убивает ссылки вместе с анкором.
"зачем убирать ссылки, оставляя хтмл?" - вы может топиком ошиблись? )))) Связи ваших слов с представленным кодом вообще не наблюдается
gegMOPO4 17.01.2011 12:10 # 0
wowerwower 17.01.2011 13:24 # −1
<a href='http://lobzikov.ru'>lobzikov.ru</a>
или
<a href='http://maxref.ru/referat_457_8.html'>Будщее науки</a>
или
<a href='http://maxref.ru/referat_457_9.html' title='Крутой реферат'>Крутой реферат</a>
то этот паттерн его по-любому найдет и вырежет, если используется совместно с preg_replace и ему подобных ф-ций.
Пример: $text = preg_replace("#<a(.*?)\/a>#si","",$text);
gegMOPO4 17.01.2011 14:21 # 0
<a name='step3'><h3>Шаг третий</h3></a>
<abbr title='Говнокод'>ГК</abbr> <a href="http://govnokod&46;ru/5289">такой</a>
<a href='http://lobzikov&46;ru'>lobzikov&46;ru</a >
<a href='http://lobzikov&46;ru'>lobzikov&46;ru (конец фрагмента)
wowerwower 17.01.2011 18:16 # 0
function onlytext($text)
{
$text = preg_replace ("/[^0-9a-zA-Zа-яА-ЯёЁ \.,!@?%-:;()_+=&\n]/", "", $text);
$text = str_replace ("'", "", $text);
return trim($text);
}
gegMOPO4 17.01.2011 20:55 # +2
1) не режут всё, что нужно;
2) режут что не нужно.
Следовательно, они
1) бесполезны;
2) вредны.
wowerwower 17.01.2011 13:32 # −1
<a" и до "/a>" и замены найденного на "".