Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Замена ссылок в тексте
Форумы портала PHP.SU » PHP » Регулярные выражения » Замена ссылок в тексте

Страниц (1): [1]
 

1. vanicon - 14 Ноября, 2011 - 16:42:19 - перейти к сообщению
Видел много тем и в интернете и на форуме по этому поводу, но везде не то что нужно.
Нужно заменить вот такие вот типы ссылок в тексте: http://site.ru, www.site.ru, http://www.site.ru.
На такие коды:
<a href="http://site.ru">http://site.ru</a>, <a href="http://www.site.ru">www.site.ru</a>, <a href="http://www.site.ru">http://www.site.ru</a>.
И еще хотелось бы что бы проверялось корректность этой ссылке(доменные зоны и тд).
2. EuGen - 14 Ноября, 2011 - 16:49:43 - перейти к сообщению
Как вариант:
PHP:
скопировать код в буфер обмена
  1. $string = preg_replace("/(http:\/\/)?([a-zA-Z0-9\-.]+\.[a-zA-Z0-9\-]+([\/]([a-zA-Z0-9_\/\-.?&%=+])*)*)/", '<a href="http://$2">$2</a>', $string);

А корректность и доменные зоны - в каком плане проверять?
www[dot]link[dot]nodomain - корректная с точки зрения стандарта ссылка. Но домена первого уровня nodomain не существует, к примеру.

 

Powered by ExBB FM 1.0 RC1