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&amp;mysql(二)
Oct 09 PHP
php批量删除数据
Jan 18 PHP
php 三维饼图的实现代码
Sep 28 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
PHP开发Apache服务器配置
Jul 15 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 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
德劲1103的维修打理经验
2021/03/02 无线电
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
php去除重复字的实现代码
2011/09/16 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python机器学习之神经网络(三)
2017/12/20 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
2014年评职称工作总结
2014/11/20 职场文书
国庆庆典邀请函
2015/02/02 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python
图神经网络GNN算法
2022/05/11 Python