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中的Class的几点个人看法
Oct 09 PHP
PHP 中的一些经验积累
Oct 09 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
php curl_init函数用法
Jan 31 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python多线程爬虫简单示例
2016/03/04 Python
Python实现定时任务
2017/02/08 Python
Python操作csv文件实例详解
2017/07/31 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python实现基于POS算法的区块链
2018/08/07 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
python使用smtplib模块发送邮件
2020/12/17 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
实体的生命周期
2013/08/31 面试题
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
银行稽核岗位职责
2015/04/13 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫