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编程中八种常见的文件操作方式
Nov 19 PHP
一个捕获函数输出的函数
Feb 14 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 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
php生成WAP页面
2006/10/09 PHP
理解PHP5中static和const关键字的区别
2007/03/19 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP 实现重载
2021/03/09 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
饲料采购员岗位职责
2013/12/19 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
厨师长岗位职责
2014/03/02 职场文书
成语的广告词
2014/03/19 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
应届生简历自我评价
2015/03/11 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
2022年四月新番
2022/03/15 日漫
服务器nginx权限被拒绝解决案例
2022/09/23 Servers