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 相关文章推荐
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
php中iconv函数使用方法
May 24 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
Cakephp 执行主要流程
Mar 24 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
PHP类的封装与继承详解
Sep 29 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
PHP中常用的魔术方法
Apr 28 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 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
javascript的函数作用域
2014/11/12 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
mac系统安装Python3初体验
2018/01/02 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
通过实例解析Python return运行原理
2020/03/04 Python
python中安装django模块的方法
2020/03/12 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
在购买印度民族服饰:Soch
2020/09/15 全球购物
校长师德师风自我剖析材料
2014/09/29 职场文书
小学运动会报道稿
2014/10/04 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Golang表示枚举类型的详细讲解
2021/09/04 Golang
德生BCL3000抢先使用感受和评价
2022/04/07 无线电