PHP实现对站点内容外部链接的过滤方法

2015-01-24信息快讯网

这篇文章主要介绍了PHP实现对站点内容外部链接的过滤方法,可实现针对外部链接增加rel="nofollow"的功能,有助于网站SEO建设以及避免不必要的损失,是非常实用的技巧,需要的朋友可以参考下

熟悉SEO的朋友都知道,对于网站外部链接失效的情况如果链接带有rel="nofollow"属性可以避免不必要的损失。本文就以实例形式演示了PHP实现对站点内容外部链接的过滤方法。具体如下:

问题描述:原来站内很多文章都是摘录的外部文章,文章里很多链接要么是时间久了失效了,要么就是一些测试的网址,如:http://localhost/ 之类的,链接多了的话,就形成站内很多死链接,这对SEO优化是很不利的。

解决方法:需要对站点内的内容进行过滤,将不是内部链接的链接加上 rel="nofollow"属性

本文借鉴了wordpress的过滤外部链接的函数,将其改一下即可使用。

具体代码如下:

//外部链接增加nofllow $content 内容 $domain 当前网站域名
function content_nofollow($content,$domain){
 preg_match_all('/href="(.*?)"/',$content,$matches);
 if($matches){
 foreach($matches[1] as $val){
  if( strpos($val,$domain)===false ) $content=str_replace('href="'.$val.'"', 'href="'.$val.'" rel="external nofollow" ',$content);
 }
 }
 preg_match_all('/src="(.*?)"/',$content,$matches);
 if($matches){
 foreach($matches[1] as $val){
  if( strpos($val,$domain)===false ) $content=str_replace('src="'.$val.'"', 'src="'.$val.'" rel="external nofollow" ',$content);
 }
 }
 return $content;
}

调用的时候很好调用,如下是调用演示

$a['content'] = content_nofollow($a['content'],$domain);  //将文章内容里的链接增加nofllow属性

 
注意!这里过滤的域名需要是不带“/”的,如http://www.jb51.net,这样才可以很好的过滤。

相信本文所述的方法对大家的PHP项目开发有一定的借鉴价值。

THINKPHP内容分页代码分享
php5.4以下版本json不支持不转义内容中文的解决方法
php正则匹配html中带class的div并选取其中内容的方法
php采集内容中带有图片地址的远程图片并保存的方法
php匹配字符中链接地址的方法
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
php判断文件上传类型及过滤不安全数据的方法
yii2.0之GridView自定义按钮和链接用法
php表单敏感字符过滤类
php实现使用正则将文本中的网址转换成链接标签
PHP实现抓取HTTPS内容
PHP过滤黑名单关键字的方法
php调用新浪短链接API的方法
php中$_GET与$_POST过滤sql注入的方法
php防止sql注入之过滤分页参数实例
php结合js实现点击超链接执行删除确认操作
CentOS 6.3下安装PHP xcache扩展模块笔记
php生成随机数的三种方法
PHP curl 抓取AJAX异步内容示例
如何让搜索引擎抓取AJAX内容解决方案
使用php方法curl抓取AJAX异步内容思路分析及代码分享
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
PHP文件缓存内容保存格式实例分析
php中使用array_filter()函数过滤空数组的实现代码
PHP实现把文本中的URL转换为链接的auolink()函数分享
PHP获取短链接跳转后的真实地址和响应头信息的方法
PHP 只允许指定IP访问(允许*号通配符过滤IP)
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
PHP内置过滤器FILTER使用实例
PHP实现删除非站内外部链接实例代码
CodeIgniter框架过滤HTML危险代码
php 过滤英文标点符号及过滤中文标点符号代码
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
©2014-2024 dbsqp.com