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


Posted in PHP onDecember 03, 2014
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中使用Oracle数据库(6)
Oct 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
PHP中的日期及时间
Nov 23 PHP
PHP中基本符号及使用方法
Mar 23 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
CI框架的安全性分析
May 18 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP区块查询实现方法分析
May 12 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP操作Redis常用命令的实例详解
Dec 23 PHP
Yii框架中memcache用法实例
Dec 03 #PHP
yii中widget的用法
Dec 03 #PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 #PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 #PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 #PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 #PHP
Yii实现多按钮保存与提交的方法
Dec 03 #PHP
You might like
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
python随机模块random使用方法详解
2020/02/14 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
法人代表任命书范本
2014/06/05 职场文书
2014年计生工作总结
2014/11/21 职场文书
医德医风个人总结
2015/02/28 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Python并发编程实例教程之线程的玩法
2021/06/20 Python