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


Posted in PHP onSeptember 10, 2014

熟悉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属性

 
注意!这里过滤的域名需要是不带“/”的,如https://3water.com,这样才可以很好的过滤。

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

PHP 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
浅谈PHP的反射API
Feb 26 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
实例讲解PHP表单处理
Feb 15 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 PHP
php生成随机数的三种方法
Sep 10 #PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 #PHP
初识php MVC
Sep 10 #PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 #PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 #PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 #PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 #PHP
You might like
聊天室php&mysql(一)
2006/10/09 PHP
PHP 彩色文字实现代码
2009/06/29 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
php json相关函数用法示例
2017/03/28 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
公司承诺书格式
2014/05/21 职场文书
公益广告标语
2014/06/19 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
欠条样本
2015/07/03 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书