程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> PHP批量過濾MYSQL數據庫內站外鏈接和圖片

PHP批量過濾MYSQL數據庫內站外鏈接和圖片

編輯:MySQL綜合教程

因發現站內很多引用站外文章的鏈接失效,產生大量的死鏈接,對於搜索引擎來說是極不友好的,很不利於網站優化,所以站內添加了站外鏈接過濾功能,對於新加的文章,在添加入庫時就自動增加rel="nofollow"標簽,見文章《增加對站點內容外部鏈接的過濾》。因考慮如果是在前台調用數據時過濾的話,對網頁打開速度,服務器能耗都增加許多,所以就采用的是入庫時添加。

那麼,原來已有的數據怎麼辦?現在需要對原來的數據也進行此操作,如果是在後台一條條編輯來實現,即使只需要點一下,工程量也是很大的,那麼就需要一個批處理操作。

寫一個批處理程序即可,經調試,測試,以下的程序可很好的替換原來數據庫裡面的外部鏈接和外部圖片

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

一篇文章裡有一個鏈接是 http://www.53sj.net/article-6-1.html

一個圖片是 http://www.53sj.net/data/attachment/block/d3/d34780d1fca3d6b7960a7eb7a2c4c0d3.jpg

經過批處理操作後

其代碼變成 <a href="http://www.53sj.net/article-6-1.html" rel="external nofollow"

<img src="http://www.53sj.net/data/attachment/block/d3/d34780d1fca3d6b7960a7eb7a2c4c0d3.jpg" rel="external nofollow"

 

批量過濾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.'更新成功!<br />';} }   //外部鏈接增加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數據庫內站外鏈接和圖片

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved