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 编程的 5个良好习惯
Feb 20 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
PHP实现邮件群发的源码
Jun 18 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP的cURL库简介及使用示例
Feb 06 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
stripos函数知识点实例分享
Feb 11 PHP
Yii框架核心组件类实例详解
Aug 06 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
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python实现视频压缩功能
2020/12/18 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
房地产项目建议书
2014/03/12 职场文书
语文教研活动总结
2014/07/02 职场文书
就业意向书
2014/07/29 职场文书
银行转正自我鉴定
2014/09/29 职场文书
2014年村官工作总结
2014/11/24 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android