日期:2014-05-17  浏览次数:20532 次

谁能帮忙写一个正则表达式
url替换为超连接

比如:
呵呵http://www.sina.com.cn西西哈哈    
替换之后是:
呵呵 <a   href= "http://www.sina.com.cn "> http://www.sina.com.cn </a> 西西哈哈

在比如:
中国最大的技术论坛:www.csdn.net,你可以学到很多东西
替换之后是:
中国最大的技术论坛: <a   href= "www.csdn.net "> www.csdn.net </a> ,你可以学到很多东西

总之,是URL都要替换为超连接.高手帮忙写一下.谢谢

------解决方案--------------------
<?

function enable_url($str)
{
$str = ereg_replace( "([url]www.[a-zA-Z0-9@:%_.~#-\?&]+[/url]) ", " <a href=\ "linkHttp://\\1\ " target=\ "_blank\ "> \\1 </a> ", $str); // 自动转化www开头的链接
$str = ereg_replace( "(((f|ht){1}tp://)[a-zA-Z0-9@:%_.~#-\?&]+) ", " <a href=\ "\\1\ " target=\ "_blank\ "> \\1 </a> ", $str); //转化[url]http://开头和ftp://开头的链接[/url]
$str = str_replace( 'linkHttp:// ', 'http:// ',$str);
$str = ereg_replace( "([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}) ", " <a href=\ "mailto:\\1\ "> \\1 </a> ", $str); // 转化邮件地址
return $str;
}
//for example
echo enable_url( "呵呵http://www.sina.com.cn西西哈哈 ");

?>