帝国CMS编辑发布文章时,有时因为文章来源于其他网站,因此粘贴时不可避免地会带有原网站的文章内容格式(可以用帝国CMS编辑器的清除格式功能解决)和站外链接(指对方网站的内文链接和图片链接)。

那,有没有更加智能和快捷的方法,可以一劳永逸地解决呢?
PS.此解决方法,也许只适合帝国CMS7.2版无法删除非本站链接的问题。

打开文件\e\class\hinfofun.php

1、在文件最后即“?>”之前,添加如下代码:

function Replace_Links($body)
{
$host_rule = $_SERVER[‘HTTP_HOST’];
$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;
}

2、查找if(!$add[id]||!$add[title]||!$add[classid]||!$add[filename])在其上面添加如下代码:

//帝国删除非本站链接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);

3、查找$ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定义字段,在其上面添加:

//帝国删除非本站链接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);