帝國(guó)CMS發(fā)布/更新文章時(shí) 去掉內(nèi)容所帶站外鏈接的功能代碼
需求/問(wèn)題描述:帝國(guó)CMS編輯發(fā)布文章時(shí),有時(shí)因?yàn)槲恼聛?lái)源于其他網(wǎng)站,因此粘貼時(shí)不可避免地會(huì)帶有原網(wǎng)站的文章內(nèi)容格式(可以用帝國(guó)CMS編輯器的清除格式功能解決)和站外鏈接(指對(duì)方網(wǎng)站的內(nèi)文鏈接和圖片鏈接)。
舉例來(lái)說(shuō),文章內(nèi)容來(lái)自于中國(guó)站長(zhǎng)站chinaz,在CHINAZ的文章內(nèi)容中,很多圖片都帶有一個(gè)鏈接(鏈向一個(gè)絕對(duì)URL的圖片地址),而在你自己網(wǎng)站內(nèi)容中,這些鏈接你并不想出現(xiàn)——因?yàn)殒溝虻氖荂HINAZ網(wǎng)站而不是你自己的站。當(dāng)然,這些鏈接可以在后臺(tái)編輯時(shí),手動(dòng)去掉,但除非本質(zhì)工作是專業(yè)編輯,要不老是這么干,會(huì)讓人覺(jué)得煩、累!
那,有沒(méi)有更加智能和快捷的方法,可以一勞永逸地解決呢?華哥經(jīng)過(guò)實(shí)踐,搞定了這一問(wèn)題。

PS.此解決方法,也許只適合帝國(guó)CMS7.2版無(wú)法刪除非本站鏈接的問(wèn)題。
打開(kāi)文件\e\class\hinfofun.php,注:不要使用記事本打開(kāi)編輯.php文件。PS.華哥是用dreamweaver2017版編輯的,至少用dw的查找功能是很方便實(shí)用的。
1、在文件最后即“?>”之前,添加如下代碼:PS.這是一段函數(shù)代碼,實(shí)現(xiàn)去除站外鏈接功能。
function Replace_Links($body)
{
$host_rule = $_SERVER[‘HTTP_HOST’];
$arr = ”;
preg_match_all(“#<a([^>]*)>(.*)<\/a>#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])在其上面添加如下代碼:PS.調(diào)用前面定義的函數(shù)代碼,真實(shí)代碼只是一行,下面兩行中的第一行是注釋,可以用也可以不用。
//帝國(guó)刪除非本站鏈接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);
3、查找$ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定義字段在其上面添加 PS.真實(shí)代碼只是一行,下面兩行中的第一行是注釋,可以用也可以不用。
//帝國(guó)刪除非本站鏈接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);
原文由華哥在學(xué)而行營(yíng)銷網(wǎng)實(shí)踐通過(guò),實(shí)用有效。
| 留言與評(píng)論(共有 0 條評(píng)論) |



