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(1)
Oct 09 PHP
实用函数8
Nov 08 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
简单的php文件上传(实例)
Oct 27 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
thinkPHP查询方式小结
Jan 09 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
jQuery 动画基础教程
2008/12/25 Javascript
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
详解Python的数据库操作(pymysql)
2019/04/04 Python
django 中QuerySet特性功能详解
2019/07/25 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
资产评估专业大学生求职信
2013/09/29 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle