PHP实现删除非站内外部链接实例代码
发布时间:2020-12-12 20:14:30 所属栏目:PHP教程 来源:网络整理
导读:一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让PHP处理下文章内容,来达到文章外部链接的自动删除的效果。 本实例代码主要参考织梦CMS内容管理系统的外链删除方法。 代码如下: * 删除非站
一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让PHP处理下文章内容,来达到文章外部链接的自动删除的效果。 本实例代码主要参考织梦CMS内容管理系统的外链删除方法。 代码如下: * 删除非站内链接 * * @access public * @param string $body 内容 * @param array $allow_urls 允许的超链接 * @return string */ function Replace_Links( &$body,$allow_urls=array() ) { $host_rule = join('|',$allow_urls); $host_rule = preg_replace("#[nr]#",'',$host_rule); $host_rule = str_replace('.',".",$host_rule); $host_rule = str_replace('/',"/",$host_rule); $arr = ''; preg_match_all("#]*)>(.*)#iU",$body,$arr); if( is_array($arr[0]) ) { $rparr = array(); $tgarr = array(); foreach($arr[0] as $i=>$v) { if( $host_rule != '' && preg_match('#'.$host_rule.'#i',$arr[1][$i]) ) { continue; } else { $rparr[] = $v; $tgarr[] = $arr[2][$i]; } } if( !empty($rparr) ) { $body = str_replace($rparr,$tgarr,$body); } } $arr = $rparr = $tgarr = ''; return $body; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |