百度小偷:去除竞价与广告

功用如题。
重写规则和Wordpress一致。
兼容IIS、Apache、Nginx。
只有一个文件实现所有功能。
 

 

  1. <?php 
  2. if(isset($_GET['wd'])){  
  3.     $keywords = $_GET['wd'];  
  4. }  
  5. $uri = isset($_SERVER['HTTP_X_REWRITE_URL']) ? $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI'];  
  6. $content = file_get_contents("http://www.baidu.com".$uri);  
  7.  
  8. if($uri=='/' || empty($uri)){  
  9.     display($content);  
  10. }  
  11.  
  12. //删除"来百度推广"链接  
  13. $start = preg_quote("<div class=\"r ec_bdtg\">");  
  14. $content = preg_replace("/".$start."((?!<br>).)*<br>"."/is",'',$content);  
  15.  
  16. //删除左侧竞价  
  17. $start = "<table((?!>).)*>";  
  18. $content = preg_replace_callback("/".$start."((?!<\/table>).)*<\/table>/is","search_result_filter",$content);  
  19.  
  20. //删除剩下的多个<br> 
  21. $content = str_ireplace("<br>\n\n<br>",'',$content);  
  22. //删除剩下的多个<br> 
  23. $content = str_ireplace("<br/>                                  \n\n",'',$content);  
  24. //删除右侧推广链接  
  25. $start = preg_quote("<div id=\"ec_im_container\">");  
  26. $content = preg_replace("/".$start."((?!<style).)*"."/is","<br /></div>",$content);  
  27.  
  28. display($content);  
  29. /**  
  30.  * 搜索结果过滤器  
  31.  */  
  32. function search_result_filter($matches){  
  33.     //背景#f5f5f5的是广告  
  34.     if(strpos($matches[0],"bgcolor=\"#f5f5f5\"")) return '';  
  35.     //ID4位数的是广告  
  36.     if(preg_match("/<table(.*?)id=\\\"(\d{4,})\\\"(.*?)>((?!<\/table>).)*<\/table>/is",$matches[0])){  
  37.         return '';  
  38.     }  
  39.     return $matches[0];  
  40. }  
  41.  
  42. function display($content) {  
  43.     echo $content;