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 相关文章推荐
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
php强制运行广告的方法
Dec 01 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
php cookie 详解使用实例
Nov 03 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
php实现的生成排列算法示例
Jul 25 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
PHP实现简单用户登录界面
Oct 23 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 带逗号千位符数字的处理方法
2012/01/10 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
python中Genarator函数用法分析
2015/04/08 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
基于Python实现粒子滤波效果
2020/12/01 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
企业车辆管理制度
2014/01/24 职场文书
运动会横幅标语
2014/06/17 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书