Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Проблема с регом на линк


Автор: InfMag 25.12.2005, 10:34
Код

$str = preg_replace("%(^(\=)*|\s|<br>|\s)(http|https|ftp)://([^(\s|\<\b\r\>|\[)]*)%si", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $str);
$str = preg_replace("%(^(\=)*|\s|<br>|\s)(\w*)\@(\w*)\.(\w*)%si", "<a href=\"mailto:\\0\" target=\"_blank\">\\0</a>", $str);
$str = preg_replace("#(http|https|ftp)://(.+)(<br>|\s)#siU", "<a href=\"\\1://\\2\" target=\"_blank\">\\1://\\2</a>\\3", $str);

Я еще много как пробовал, но нифига дельного не получается, все равно остается какой-нить косяк.
Просто неважно, что будет стоять перед http, а вот в конце всего может быть пробел и <br>
Добавлено @ 10:35
По поводу email рега та же история. Просто в конце ссылки или впереди остается пробел, который включается в ссылку или <br>.

Автор: Mal Hack 25.12.2005, 12:59
Поиском когда будем пользоваться?

http://forum.vingrad.ru/index.php?showtopic=46685&view=getnewpost
http://forum.vingrad.ru/index.php?showtopic=46596&view=getnewpost

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)