- 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
Друг посчитал, что коду место на этом ресурсе :)
Друг правильно посчитал.
function onlytext($text)
{
$text = preg_replace ("/[^0-9a-zA-Zа-яА-ЯёЁ \.,!@?%-:;()_+=&\n]/", "", $text);
$text = str_replace ("'", "", $text);
return trim($text);
}
preg_replace("#<a(.*?)\/a>|(http:\/\/|https:\/\/)?([a-z0-9-\.]+\.[a-z]{2,6})#si","",$text);
Если принципиально, то его всегда можно добавить
ftp:\/\/ и все.., но опять же он не добавлялся умышленно к тому же, вы сначало попробуйте, пройдет ли такой домен))
Готово. Фильтрует самые распространенные домены (кроме IDN), а текст не убивает и mr.smith тож оставит живым
А вот ещё: &103;&111;&111;&103;&108;&101;&46;&99;&1 11;&109;
.РФ
запилите полный список и положите в паблик. а еще напишите-ка твиттер клиент. их всегда недостаточно!
во-вторых, быть может, strip_tags или что-то вроде поможет?
<a(.*?)\/a> - вот эта часть убивает ссылки вместе с анкором.
"зачем убирать ссылки, оставляя хтмл?" - вы может топиком ошиблись? )))) Связи ваших слов с представленным кодом вообще не наблюдается
<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);
<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 (конец фрагмента)
function onlytext($text)
{
$text = preg_replace ("/[^0-9a-zA-Zа-яА-ЯёЁ \.,!@?%-:;()_+=&\n]/", "", $text);
$text = str_replace ("'", "", $text);
return trim($text);
}
1) не режут всё, что нужно;
2) режут что не нужно.
Следовательно, они
1) бесполезны;
2) вредны.
<a" и до "/a>" и замены найденного на "".