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 和 XML: 使用expat函数(三)
Oct 09 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php实现的简单日志写入函数
Mar 31 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
php array_chunk()函数用法与注意事项
Jul 12 PHP
如何解决php-fpm启动不了问题
Nov 17 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
JavaScript中的变量作用域介绍
2014/12/31 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python实现聊天小程序
2018/03/13 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
python+os根据文件名自动生成文本
2019/03/21 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
学校安全检查制度
2014/01/27 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
公司晚会主持词
2019/04/17 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers