码迷,mamicode.com
首页 > Web开发 > 详细

给文本中的url加超级链接,同时滤过已加过链接的url

时间:2015-04-26 22:38:03      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

/**
 * 给文本中的url加超级链接,同时滤过已有链接的url
 * @param  string $str [description]
 * @return [type]      [description]
 */
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:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/([^=\‘\"]https:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/(ftp:\/\/[^ )!]+)/i","<a href=\"\\1\">\\1</a>", $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 = "open: http://www.baidu.com/ and <a href=‘http://www.baidu.com‘>hehe</a>";
var_dump(text2links($text));

输出结果:

string(109) "open:<a href=" http://www.baidu.com/"> http://www.baidu.com/</a> and <a href=‘http://www.baidu.com‘>hehe</a>"

 

给文本中的url加超级链接,同时滤过已加过链接的url

标签:

原文地址:http://www.cnblogs.com/phpfans/p/4458434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!