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数据库(3)
Oct 09 PHP
杏林同学录(六)
Oct 09 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP实现多图片上传类实例
Jul 26 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
实现PHP搜索加分页
Oct 12 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
Laravel框架基于ajax实现二级联动功能示例
Jan 17 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python编程中的for循环语句学习教程
2015/10/14 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
如何基于Python批量下载音乐
2019/11/11 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Python 音频生成器的实现示例
2019/12/24 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
遇到的Mysql的面试题
2014/06/29 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
社会实践评语
2014/04/28 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
投诉信范文
2015/07/02 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL