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实现WEB动态网页静态
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
解析PHP缓存函数的使用说明
May 10 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php 购物车的例子
2009/05/04 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php中的strpos使用示例
2014/02/27 PHP
php命名空间学习详解
2014/02/27 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
TensorFlow的权值更新方法
2018/06/14 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
小学安全教育月活动总结
2014/07/07 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
党校党性分析材料
2014/12/19 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
班级班风口号大全
2015/12/25 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书