当前位置:首页 > PHP教程 > php应用 > 列表

PHP实现删除非站内外部链接实例代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-02-21 14:00:20 浏览: 评论:0 

一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让PHP处理下文章内容,来达到文章外部链接的自动删除的效果。

本实例代码主要参考织梦CMS内容管理系统的外链删除方法,代码如下:

  1. /** 
  2.  *  删除非站内链接 
  3.  * 
  4.  * @access    public 
  5.  * @param     string  $body  内容 
  6.  * @param     array  $allow_urls  允许的超链接 
  7.  * @return    string 
  8.  */ 
  9. function Replace_Links( &$body$allow_urls=array()  ) 
  10.     $host_rule = join('|'$allow_urls); 
  11.     $host_rule = preg_replace("#[\n\r]#"''$host_rule); 
  12.     $host_rule = str_replace('.'"\\."$host_rule); 
  13.     $host_rule = str_replace('/'"\\/"$host_rule); 
  14.     $arr = ''
  15.     preg_match_all("#<a([^>]*)>(.*)<\/a>#iU"$body$arr); 
  16.     ifis_array($arr[0]) ) 
  17.     { 
  18.         $rparr = array(); 
  19.         $tgarr = array(); 
  20.         foreach($arr[0] as $i=>$v
  21.         { 
  22.             if$host_rule != '' && preg_match('#'.$host_rule.'#i'$arr[1][$i]) ) 
  23.             { 
  24.                 continue
  25.             } else { 
  26.                 $rparr[] = $v
  27.                 $tgarr[] = $arr[2][$i]; 
  28.             } 
  29.         } 
  30.         if( !emptyempty($rparr) ) 
  31.         { 
  32.             $body = str_replace($rparr$tgarr$body); 
  33.         } 
  34.     } 
  35.     $arr = $rparr = $tgarr = ''
  36.     return $body

Tags: PHP站内外部链接

分享到: