Найти в тексте email и ссылки а потом выделить

Печать RSS
275

Автор
Пишу, строю и воображаю
0
К примеру в базе есть текст:
"Меня зовут Иван, мне 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;
}
?>
Изменил: ШЕДЕВР (27.10.2012 / 22:20)
В

Чатланин
0
<?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;
}
?>
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск