Home > php教程 > php手册 > body text

PHP批量过滤MYSQL数据库内站外链接和图片

WBOY
Release: 2016-06-06 19:43:18
Original
1054 people have browsed it

增加对站点内容外部链接的过滤》。因考虑如果是在前台调用数据时过滤的话,对网页打开速度,服务器能耗都增加许多,所以就采用的是入库时添加。 那么,原来已有的数据怎么办?现在需要对原来的数据也进行此操作,如果是在后台一条条编辑来实现,即使只需要点

增加对站点内容外部链接的过滤》。因考虑如果是在前台调用数据时过滤的话,对网页打开速度,服务器能耗都增加许多,所以就采用的是入库时添加。

那么,原来已有的数据怎么办?现在需要对原来的数据也进行此操作,如果是在后台一条条编辑来实现,即使只需要点一下,工程量也是很大的,那么就需要一个批处理操作。

写一个批处理程序即可,经调试,测试,以下的程序可很好的替换原来数据库里面的外部链接和外部图片

如,站点是http://www.ledaokj.com

一篇文章里有一个链接是 http://www.53sj.net/article-6-1.html

一个图片是 http://www.68idc.cn/help/uploads/allimg/150923/0I201BZ-0.jpg

经过批处理操作后

其代码变成

PHP批量过滤MYSQL数据库内站外链接和图片

 

批量过滤MYSQL数据库内站外链接和图片程序代码

global $config,$db;

$sql = "SELECT `id`,`content` FROM `{$db->prefix}article`";

 

$a_list = $db->query($sql);

 

$domain = $config['url'];

$domain = substr($domain,0,strlen($domain)-1);  //修正当前域名网址

 

foreach($a_list as $a){

$content = content_nofollow($a['content'],$domain);

update_a($a['id'],addslashes($content));

}

exit;

 

function update_a($id,$content){

global $config,$db;

 

$sql = "update `{$db->prefix}article` SET `content`='{$content}' where `id`={$id}";

if($db->execute($sql)){echo $id.'更新成功!
';}

}

 

//外部链接增加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="http:(.*?)"/',$content,$matches);

 if($matches){

  foreach($matches[1] as $val){

   if( strpos($val,$domain)===false ) $content=str_replace('src="http:'.$val.'"', 'src="http:'.$val.'" rel="external nofollow" ',$content);

  }

 }

 return $content;

}

 

PHP批量过滤MYSQL数据库内站外链接和图片

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!