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 select,radio和checkbox默认选择的实现方法
May 15 PHP
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
php实现Session存储到Redis
Nov 11 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
php服务器的系统详解
Oct 12 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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可变函数学习小结
2015/11/29 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
PHP xpath()函数讲解
2019/02/11 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
Python多线程下载文件的方法
2015/07/10 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
查看Django和flask版本的方法
2018/05/14 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
如何使用python代码操作git代码
2020/02/29 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
django使用graphql的实例
2020/09/02 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python