如何讓帝國CMS系統支持PHP8*環境?
使用帝國CMS系統是一款很不錯的國產CMS系統,但是只有帝國CMS8.0才支持PHP8*,因為PHP8版本對PHP改動很大,并且對變量定義、函數參數要求更嚴格,去掉了部分函數等。雖然帝國CMS8.0新增對PHP8.*系列運行環境的支持,兼容性更好。但是依然有很大一部分站長在使用帝國CMS7.5以及以下版本,然而目前的帝國CMS7.5版本只支持PHP8以下運行環境。
那么我們如何讓我們帝國CMS8.0以下的版本支持PHP8*環境呢?那么我們如何解決這個問題呢?下面分享一個帝國兼容php8的兼容寫法,比如帝國源代碼,connect.php核心文件的某函數:
ActionScript
//返回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+以上,不是數組而產生的錯誤或警告,甚至某些地方會終止執行。那怎么改呢。其實很簡單的,那我們自定義一個函數寫到connect.php文件最尾部。自定義函數如下:
ActionScript
function php8_count($a){
return is_array($a)?count($a):0;
}
那帝國的源代碼就可以改為:
ActionScript
//返回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;
}
其實也是很簡單的,帝國這樣的函數沒有判斷是不是數組的太多了,只是舉例某一個函數作為說明。在實際操作的過程中,可能需要根據錯誤提示逐一進行排查!
當然,本文只是一種實現思路,如果手動來改,也是一個不小的工作量,而且還需要一定的動手能力和PHP知識,我們不如直接等待官網更新,使用帝國CMS8.0,雖然不知道啥時候才有這種可能!
版權聲明:
作者:小藍
鏈接:http://www.tymcc.com.cn/content/4026.html
本站部分內容和圖片來源網絡,不代表本站觀點,如有侵權,可聯系我方刪除。
作者:小藍
鏈接:http://www.tymcc.com.cn/content/4026.html
本站部分內容和圖片來源網絡,不代表本站觀點,如有侵權,可聯系我方刪除。
THE END