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实现文件上传二法
Oct 09 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
PHP的加密方式及原理
Jun 14 PHP
下拉列表多级联动dropDownList示例代码
Jun 27 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
php获取apk包信息的方法
Aug 15 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
PHP打印输出函数汇总
Aug 28 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
php str_pad 函数用法简介
2009/07/11 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
python动态加载包的方法小结
2016/04/18 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
基于Python的PIL库学习详解
2019/05/10 Python
python 实现按对象传值
2019/12/26 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
司仪主持词两篇
2014/03/22 职场文书
超市理货员岗位职责
2014/07/04 职场文书
合伙购房协议样本
2014/10/06 职场文书
先进班组事迹材料
2014/12/25 职场文书
你会写请假条吗?
2019/06/26 职场文书
导游词之山东孔庙
2019/11/04 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL