php实现使用正则将文本中的网址转换成链接标签

yipeiwu_com6年前PHP代码库

复制代码 代码如下:

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",
            "<a href=\"\\1\">\\1</a>", $l);
        $l = preg_replace("/(ftp:\/\/[^ )\r\n!]+)/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;
}

相关文章

总结一些PHP中好用但又容易忽略的小知识

本文主要给大家总结了PHP中一些好用的小知识,分享出来供大家参考学习,下面来看看详细的介绍: 1、PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保...

PHP Static延迟静态绑定用法分析

本文实例讲述了PHP Static延迟静态绑定用法。分享给大家供大家参考,具体如下: PHP5.3以后引入了延迟静态绑定static,它是为了解决什么问题呢?php的继承模型中有一个存在...

php无限分类使用concat如何实现

一、数据库设计 -- -- Table structure for table `category` -- CREATE TABLE `category` ( `...

php根据日期显示所在星座的方法

本文实例讲述了php根据日期显示所在星座的方法。分享给大家供大家参考。具体实现方法如下: <?php function zodiac($DOB){ $DOB =...

php之Memcache学习笔记

1、win下安装,memcached -d installwin下启动,memcached -d start关闭,memcached -d stop 1_1、三种方式访问memcache...