当前位置:编程学习 > php >>

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

功用如题。
重写规则和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> <br>",,$content);  
  22. //删除剩下的多个<br> 
  23. $content = str_ireplace("<br/>                                   ",,$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;  

 

补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,