PHP实现把文本中的URL转换为链接的auolink()函数分享


Posted in PHP onJuly 29, 2014

其实我在《把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数》一文中介绍过PHP代码如何实现将URL地址转化成链接的方法,今天给大家介绍一个更加简洁的版本,先来看看PHP的源代码:

auolink() API

/**

* Author: SeeDZ

* From: http://code.seebz.net/p/autolink-php/

**/

function autolink($str, $attributes = array()) {

    $attrs = '';

    foreach ($attributes as $attribute=>$value) {

        $attrs .= " {$attribute}=\"{$value}\"";

    }

    

    $str = ' '.$str;

    $str = preg_replace('`([^"=\'>])((http|https|ftp|ftps)://[^\s< ]+[^\s<\.)])`i', '$1<a href="$2" rel="external nofollow" '.$attrs.'>$2</a>', $str);

    $str = substr($str, 1);

    

    return $str;

}

怎么样,很简洁吧!看看函数的API文档吧:

语法

string autolink ( string $str [, array $attributes = array() ] )

参数介绍

str ? 必选(String 类型数据)。需要查询替换的文本。
attributes -可选(Array 类型数据)。替换链接的一些可选参数。

返回值

返回替换后的文本。

autolink() 调用方法

autolink使用起来也很方便,我们可以只传一个参数,即为必选的需要替换的字符文本。例如:

<?php

 

$str = 'A link : http://example.com/?param=value#anchor.';

$str = autolink($str);

 

echo $str; // A link : <a href="http://example.com/?param=value#anchor" rel="external nofollow" >http://example.com/?param=value#anchor</a>.

 

?>

另外我们还可以设置一些额外的链接的参数,可以让生成的链接在新窗口中打开,或者不希望搜索引擎索引替换的链接。例如:

<?php

 

$str = 'http://example.com/';

$str = autolink($str, array("target"=>"_blank","rel"=>"nofollow"));

 

echo $str; // <a href="http://example.com/" rel="external nofollow" target="_blank" >http://example.com/</a>

 

?>

怎么样,方便好用吧!

PHP 相关文章推荐
php str_pad 函数使用详解
Jan 13 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
php随机取mysql记录方法小结
Dec 27 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
php文件管理基本功能简单操作
Jan 16 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 #PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 #PHP
php实现读取超大文件的方法
Jul 28 #PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 #PHP
php Imagick获取图片RGB颜色值
Jul 28 #PHP
PHP exif扩展方法开启详解
Jul 28 #PHP
取得单条网站评论以数组形式进行输出
Jul 28 #PHP
You might like
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
动态加载iframe
2006/06/16 Javascript
javascript 写类方式之八
2009/07/05 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
jQuery 选择器理解
2010/03/16 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python计算方程式根的方法
2015/05/07 Python
python集合用法实例分析
2015/05/30 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Python微信公众号开发平台
2018/01/25 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
python字符串的index和find的区别详解
2020/06/20 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
生育关怀行动实施方案
2014/03/26 职场文书
服务整改报告
2014/11/06 职场文书
委托收款证明
2015/06/23 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书