如何讓帝國(guó)CMS系統(tǒng)支持PHP8*環(huán)境?
使用帝國(guó)CMS系統(tǒng)是一款很不錯(cuò)的國(guó)產(chǎn)CMS系統(tǒng),但是只有帝國(guó)CMS8.0才支持PHP8*,因?yàn)镻HP8版本對(duì)PHP改動(dòng)很大,并且對(duì)變量定義、函數(shù)參數(shù)要求更嚴(yán)格,去掉了部分函數(shù)等。雖然帝國(guó)CMS8.0新增對(duì)PHP8.*系列運(yùn)行環(huán)境的支持,兼容性更好。但是依然有很大一部分站長(zhǎng)在使用帝國(guó)CMS7.5以及以下版本,然而目前的帝國(guó)CMS7.5版本只支持PHP8以下運(yùn)行環(huán)境。
那么我們?nèi)绾巫屛覀兊蹏?guó)CMS8.0以下的版本支持PHP8*環(huán)境呢?那么我們?nèi)绾谓鉀Q這個(gè)問題呢?下面分享一個(gè)帝國(guó)兼容php8的兼容寫法,比如帝國(guó)源代碼,connect.php核心文件的某函數(shù):
//返回ID列表
function eReturnInids($ids){
if(empty($ids))
{
return 0;
}
$dh='';
$retids='';
$r=explode(',',$ids);
$count=count($r);
for($i=0;$i<$count;$i++)
{
$id=(int)$r[$i];
if(!$id)
{
continue;
}
$retids.=$dh.$id;
$dh=',';
}
if(empty($retids))
{
return 0;
}
return $retids;
}
如果在php8+以上,不是數(shù)組而產(chǎn)生的錯(cuò)誤或警告,甚至某些地方會(huì)終止執(zhí)行。那怎么改呢。其實(shí)很簡(jiǎn)單的,那我們自定義一個(gè)函數(shù)寫到connect.php文件最尾部。自定義函數(shù)如下:
function php8_count($a){
return is_array($a)?count($a):0;
}
那帝國(guó)的源代碼就可以改為:
//返回ID列表
function eReturnInids($ids){
if(empty($ids))
{
return 0;
}
$dh='';
$retids='';
$r=explode(',',$ids);
$count=php8_count($r);
for($i=0;$i<$count;$i++)
{
$id=(int)$r[$i];
if(!$id)
{
continue;
}
$retids.=$dh.$id;
$dh=',';
}
if(empty($retids))
{
return 0;
}
return $retids;
}
其實(shí)也是很簡(jiǎn)單的,帝國(guó)這樣的函數(shù)沒有判斷是不是數(shù)組的太多了,只是舉例某一個(gè)函數(shù)作為說明。在實(shí)際操作的過程中,可能需要根據(jù)錯(cuò)誤提示逐一進(jìn)行排查!
當(dāng)然,本文只是一種實(shí)現(xiàn)思路,如果手動(dòng)來改,也是一個(gè)不小的工作量,而且還需要一定的動(dòng)手能力和PHP知識(shí),我們不如直接等待官網(wǎng)更新,使用帝國(guó)CMS8.0,雖然不知道啥時(shí)候才有這種可能!
作者:小藍(lán)
鏈接:http://www.huanchou.cn/content/4026.html
本站部分內(nèi)容和圖片來源網(wǎng)絡(luò),不代表本站觀點(diǎn),如有侵權(quán),可聯(lián)系我方刪除。