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基础知识:类与对象(5) static
Dec 13 PHP
PHP学习 变量使用总结
Mar 24 PHP
php 抽象类的简单应用
Sep 06 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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新手上路(三)
2006/10/09 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP文件操作详解
2016/12/30 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
jquery中的过滤操作详细解析
2013/12/02 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
js实现时间日期校验
2020/05/26 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Apache如何部署django项目
2017/05/21 Python
pyqt5自定义信号实例解析
2018/01/31 Python
python实现大文本文件分割
2019/07/22 Python
django基础学习之send_mail功能
2019/08/07 Python
python实现复制大量文件功能
2019/08/31 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
国贸专业个人求职信范文
2014/01/08 职场文书
材料化学专业求职信
2014/07/15 职场文书
加强作风建设心得体会
2014/10/22 职场文书
2015年大学生工作总结
2015/04/21 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
React Fragment介绍与使用详解
2021/11/11 Javascript