php7装emlog,使Emlog5.3.1 支持PHP7.0到PHP7.3的方法

php7装emlog,使Emlog5.3.1 支持PHP7.0到PHP7.3的方法_第1张图片

周末闲着没事,给服务器下的所有网站升级了PHP7.3,以下方法是Emlog5.3.1支持PHP7.0到7.3版本的方法

Emlog直接安装在PHP7.0以上会直接报错,emlog5.3.1虽然已经使用mysqli连接类,但是为了兼容性还是使用了mysql。PHP7已经不支持mysql扩展了,但是支持mysqli和pdo_mysql。

以下方法是修改emlog的程序,无报错安装。已经安装好的直接修改程序即可,尽量做好文件备份。

修改include\lib\option.php

const DEFAULT_MYSQLCONN = 'mysql';

改为

const DEFAULT_MYSQLCONN = 'mysqli';

在/include/lib/cache.php

$$row['option_name'] = $row['option_value'];

改为

${$row['option_name']} = $row['option_value'];

很多主题和插件都使用了mysql连接类,还需要修改插件和主题中的数据库连接方式,不然直接报数据库错误。如果后台使用的不是默认模板的话也要按照以下方法改。

$DB = MySql::getInstance();

都要改为

$DB = Database::getInstance();

如果使用了默认后台主题需要按以下方法修改:

在admim/seo.php

$$t

改为

${$t}

在admim/views/admin_log.php

$$a

$$b

$$a

改为

${$a}

${$b}

${$a}

在admim/views/comment.php

$$a = "class=\"filter\"";

改为

${$a} = "class=\"filter\"";

以下方法按需求使用【没报错就不用管】

PHP版本更新的比较快可能autoload自动加载函数会报错,function.base.php开头的__autoload函数修改如下:

spl_autoload_register(function($class) {

$class = strtolower($class);

if (file_exists(EMLOG_ROOT . '/include/model/' . $class . '.php')) {

require_once(EMLOG_ROOT . '/include/model/' . $class . '.php');

} elseif (file_exists(EMLOG_ROOT . '/include/lib/' . $class . '.php')) {

require_once(EMLOG_ROOT . '/include/lib/' . $class . '.php');

} elseif (file_exists(EMLOG_ROOT . '/include/controller/' . $class . '.php')) {

require_once(EMLOG_ROOT . '/include/controller/' . $class . '.php');

} else {

emMsg($class . '加载失败。');

}

});

你可能感兴趣的:(php7装emlog)