當前位置: > 學(xué)習>正文
帝國cms7.5 全站搜索搜不到任何數據是怎么回事呢?
降低PHP版本到7以下,或者修改程序
1. 如何方便的在php7和其他版主中自由的切換帝國cms
//數據庫設置
$ecms_config['db']['usedb']='mysql'; //數據庫類(lèi)型
if(PHP_VERSION>6.9)$ecms_config['db']['usedb']='mysqli';
或者 兩句合并成一句
$ecms_config['db']['usedb']=PHP_VERSION>6.9?'mysqli':'mysql';
php7 有很多地方不再兼容低版本。對于帝國cms7.5來(lái)說(shuō),受影響最深的就是編碼轉換了。
在php7的地盤(pán),PHP4的語(yǔ)法風(fēng)格中的一些東西將被被拋棄。例如構造函數的用法,會(huì )在新的PHP7中完全被拋棄。PHP7將會(huì )提示一個(gè): E_DEPRECATED的錯誤提示。
<?php
class foo {
//方法名類(lèi)名相同的構造函數的用法不再兼容
function foo() {
echo 'I am the constructor';
}
}
?>
翻遍帝國cms7.的源代碼,帝國cms的編碼轉換文件e/class/doiconv.php,有多處不適應php7
可能受影響的模塊:
支付--- http://bbs.phome.net/ShowThread/?threadid=360357&forumid=42
搜索 --- http://bbs.phome.net/ShowThread?threadid=360428&forumid=42
首字母生成---- http://bbs.phome.net/ShowThread?threadid=361442&forumid=13
增加欄目生成拼音亂碼 --- http://bbs.phome.net/ShowThread/?threadid=357442&forumid=42
本著(zhù)少改的原則,提出如下修改辦法---
針對 e/class/doiconv.php 文件
2.1 查找 function Chinese($dir='./')
修改為
function __construct($dir='./')
2.2 查找
$this->config['codetable_dir'] = $dir."../data/codetable/";
修改為
$this->config['codetable_dir'] = ECMS_PATH."e/data/codetable/";
2.3 查找
/* 如果編碼相同,直接返回 */
if ($source_lang == $target_lang || $source_string == '')
{
return $source_string;
}
在其后添加:
//edit by jiuhecai
return mb_convert_encoding($source_string,$target_lang,$source_lang);
2.4 查找
while(list($key,$value)=each($tmp))
替換為:
foreach($tmp as $key=>$value)
郵件發(fā)送模塊,也有類(lèi)似的問(wèn)題
郵件發(fā)送模塊 e/class/class.smtp.php
問(wèn)題表現: http://bbs.phome.net/ShowThread/?threadid=357544&forumid=42
解決方案:
修改e/class/class.smtp.php
3.1 查找 function SMTP() {
修改為
function __construct() {
3.2查找 while(list(,$line) = @each($lines)) {
修改為:
foreach($lines as $line){
3.3查找 while(list(,$line_out) = @each($lines_out)) {
修改為
foreach($lines_out as $line_out){
3.4 查找 while(list(,$l) = @each($entries)) {
修改為
foreach ($entries as $l){
帝國ccms7.5在php7下需要改進(jìn)的地方
1. 如何方便的在php7和其他版主中自由的切換帝國cms
//數據庫設置
$ecms_config['db']['usedb']='mysql'; //數據庫類(lèi)型
if(PHP_VERSION>6.9)$ecms_config['db']['usedb']='mysqli';
或者 兩句合并成一句
$ecms_config['db']['usedb']=PHP_VERSION>6.9?'mysqli':'mysql';
php7 有很多地方不再兼容低版本。對于帝國cms7.5來(lái)說(shuō),受影響最深的就是編碼轉換了。
在php7的地盤(pán),PHP4的語(yǔ)法風(fēng)格中的一些東西將被被拋棄。例如構造函數的用法,會(huì )在新的PHP7中完全被拋棄。PHP7將會(huì )提示一個(gè): E_DEPRECATED的錯誤提示。
<?php
class foo {
//方法名類(lèi)名相同的構造函數的用法不再兼容
function foo() {
echo 'I am the constructor';
}
}
?>
翻遍帝國cms7.的源代碼,帝國cms的編碼轉換文件e/class/doiconv.php,有多處不適應php7
可能受影響的模塊:
支付--- http://bbs.phome.net/ShowThread/?threadid=360357&forumid=42
搜索 --- http://bbs.phome.net/ShowThread?threadid=360428&forumid=42
首字母生成---- http://bbs.phome.net/ShowThread?threadid=361442&forumid=13
增加欄目生成拼音亂碼 --- http://bbs.phome.net/ShowThread/?threadid=357442&forumid=42
本著(zhù)少改的原則,提出如下修改辦法---
針對 e/class/doiconv.php 文件
2.1 查找 function Chinese($dir='./')
修改為
function __construct($dir='./')
2.2 查找
$this->config['codetable_dir'] = $dir."../data/codetable/";
修改為
$this->config['codetable_dir'] = ECMS_PATH."e/data/codetable/";
2.3 查找
/* 如果編碼相同,直接返回 */
if ($source_lang == $target_lang || $source_string == '')
{
return $source_string;
}
在其后添加:
//edit by jiuhecai
return mb_convert_encoding($source_string,$target_lang,$source_lang);
2.4 查找
while(list($key,$value)=each($tmp))
替換為:
foreach($tmp as $key=>$value)
郵件發(fā)送模塊,也有類(lèi)似的問(wèn)題
郵件發(fā)送模塊 e/class/class.smtp.php
問(wèn)題表現: http://bbs.phome.net/ShowThread/?threadid=357544&forumid=42
解決方案:
修改e/class/class.smtp.php
3.1 查找 function SMTP() {
修改為
function __construct() {
3.2查找 while(list(,$line) = @each($lines)) {
修改為:
foreach($lines as $line){
3.3查找 while(list(,$line_out) = @each($lines_out)) {
修改為
foreach($lines_out as $line_out){
3.4 查找 while(list(,$l) = @each($entries)) {
修改為
foreach ($entries as $l){
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。