经测试代码如下:
/**
* 自动匹配页面里的网址,包含http,ftp等,自动给网址加上链接
*
* @param
* @arrange (512.笔记) jb51.cc
**/
function text2links($str='') {
if($str=='' or !preg_match('/(http|www\.|@)/i',$str)) { return $str; }
$lines = explode("\n",$str); $new_text = '';
while (list($k,$l) = each($lines)) {
// replace links:
$l = preg_replace("/([ \t]|^)www\./i","\\1http://www.",$l);
$l = preg_replace("/([ \t]|^)ftp\./i","\\1ftp://ftp.",$l);
$l = preg_replace("/(http:\/\/[^ )\r\n!]+)/i","<a href=\"\\1\">\\1</a>",$l);
$l = preg_replace("/(https:\/\/[^ )\r\n!]+)/i",$l);
$l = preg_replace("/(ftp:\/\/[^ )\r\n!]+)/i",$l);
$l = preg_replace(
"/([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))/i","<a href=\"mailto:\\1\">\\1</a>",$l);
$new_text .= $l."\n";
}
return $new_text;
}
//使用范例:
$text = "Visit jb51.cc :-)";
print text2links($text);
/*** 来自编程之家 jb51.cc(jb51.cc) ***/