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 相关文章推荐
php5.2.0内存管理改进
Jan 22 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
php语法检查的方法总结
Jan 21 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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读取XML值的代码(推荐)
2011/01/01 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
python连接字符串的方法小结
2015/07/13 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
亲戚结婚的请假条
2014/02/11 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
护士自我推荐信范文
2015/03/24 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
spring boot中nativeQuery的用法
2021/07/26 Java/Android