欢迎来到美文阅读网!

帝国CMS发布/更新文章时 去掉内容所带站外链接的功能代码

热门资讯 时间:2020-07-28

【www.gdfydq.com--热门资讯】

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

举例来说,文章内容来自于中国站长站chinaz,在CHINAZ的文章内容中,很多图片都带有一个链接(链向一个绝对URL的图片地址),而在你自己网站内容中,这些链接你并不想出现——因为链向的是CHINAZ网站而不是你自己的站。当然,这些链接可以在后台编辑时,手动去掉,但除非本质工作是专业编辑,要不老是这么干,会让人觉得烦、累!53k美文阅读

那,有没有更加智能和快捷的方法,可以一劳永逸地解决呢?华哥经过实践,搞定了这一问题。53k美文阅读网

帝国CMS发布/更新文章时 去掉内容所带站外链接的功能代码53k美文阅读网

PS.此解决方法,也许只适合帝国CMS7.2版无法删除非本站链接的问题。53k美文阅读网

打开文件\e\class\hinfofun.php,注:不要使用记事本打开编辑.php文件。PS.华哥是用dreamweaver2017版编辑的,至少用dw的查找功能是很方便实用的。53k美文阅读网

1、在文件最后即“?>”之前,添加如下代码:PS.这是一段函数代码,实现去除站外链接功能。53k美文阅读网

function Replace_Links($body)53k美文阅读网

{53k美文阅读网

$host_rule = $_SERVER[‘HTTP_HOST’];53k美文阅读网

$arr = ”;53k美文阅读网

preg_match_all(“#<a([^>]*)>(.*)<\/a>#iU”, $body, $arr);53k美文阅读网

if( is_array($arr[0]) )53k美文阅读网

{53k美文阅读网

$rparr = array();53k美文阅读网

$tgarr = array();53k美文阅读网

foreach($arr[0] as $i=>$v)53k美文阅读网

{53k美文阅读网

if( $host_rule != ” && preg_match(‘#’.$host_rule.’#i’, $arr[1][$i]) )53k美文阅读网

{53k美文阅读网

continue;53k美文阅读网

} else {53k美文阅读网

$rparr[] = $v;53k美文阅读网

$tgarr[] = $arr[2][$i];53k美文阅读网

}53k美文阅读网

}53k美文阅读网

if( !empty($rparr) )53k美文阅读网

{53k美文阅读网

$body = str_replace($rparr, $tgarr, $body);53k美文阅读网

}53k美文阅读网

}53k美文阅读网

$arr = $rparr = $tgarr = ”;53k美文阅读网

return $body;53k美文阅读网

}53k美文阅读网

2、查找if(!$add[id]||!$add[title]||!$add[classid]||!$add[filename])在其上面添加如下代码:PS.调用前面定义的函数代码,真实代码只是一行,下面两行中的第一行是注释,可以用也可以不用。53k美文阅读网

//帝国删除非本站链接53k美文阅读网

$add[‘newstext’] = Replace_Links($add[‘newstext’]);53k美文阅读网

3、查找$ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定义字段在其上面添加 PS.真实代码只是一行,下面两行中的第一行是注释,可以用也可以不用。53k美文阅读网

//帝国删除非本站链接53k美文阅读网

$add[‘newstext’] = Replace_Links($add[‘newstext’]);53k美文阅读网

原文由华哥在学而行营销网实践通过,实用有效。53k美文阅读网

本文来源:http://www.gdfydq.com/news/60752.html

推荐内容