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 相关文章推荐
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP防止跨域提交表单
Nov 01 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
php强制用户转向www域名的方法
Jun 19 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
CI框架常用函数封装实例
Nov 21 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 PHP
PHP实现的观察者模式实例
Jun 21 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
thinkphp框架类库扩展操作示例
Nov 26 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高效率写法(详解原因)
2013/06/20 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
JavaScript中的原始值和复杂值
2016/01/07 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
Python简单日志处理类分享
2015/02/14 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Python交互环境下实现输入代码
2018/06/22 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
Python常用类型转换实现代码实例
2020/07/28 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
保密普查工作实施方案
2014/02/25 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
英语系毕业生求职信
2014/07/13 职场文书
员工离职通知函
2015/04/25 职场文书
法律进社区活动总结
2015/05/07 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
药房管理制度范本
2015/08/06 职场文书
win10清理dns缓存
2022/04/19 数码科技
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android