Найти в тексте email и ссылки а потом выделить
1.
ШЕДЕВР (27.10.2012 / 22:20)
К примеру в базе есть текст:
"Меня зовут Иван, мне 22 года, я дизайнер. Мой электронный адрес
[email protected] также у меня есть свой сайт, вы можете посетить его набрав
http://test.ru или www.test.ru"
Пропустить через регулярку и в исходе получить такой же текст, но уже ссылки с активным тегом <A> а почту с таким же тегом но с адресом mailto... + сделать targer="_blank"...
Вот нашел в интернете, но он не пашет на 100%...
<?
function clickable_link($text=''){
$text=preg_replace('#(script|about|applet|activex|chrome):#is',"\\1:",$text);
$ret=' '.$text;
$ret=preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>",$ret);
$ret=preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$ret);
$ret=preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i","\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>",$ret);
$ret=substr($ret,1);
return $ret;
}
?>
2.
Валерий (02.12.2012 / 16:33)
<?php
//Заменяем ссылки на html код
function links($text)
{
if(preg_match_all("(((f|ht){1}t(p|ps)://)[^\s,@,*,^,\,\{,\},\[,\],\(,\),\",\']+)", $text, $mas))
{
$mmms=$mas[0];
foreach($mmms AS $key => $value)
{
$text=str_replace($value ,'<a href="'.$value.'">'.$value.'</a>',$text);
}
}
return $text;
}
?>
URL:
https://visavi.net/topics/35066