因为运行环境需要升级到php7。
需要将mysql改为mysqli,以及替换一部分preg_replace函数。
其中替换preg_replace最麻烦。
以下是一些例子。
1、ThinkPHP/Lib/Core/Dispatcher.class.php:132
// 解析剩余的URL参数
// preg_replace('@(\w+)\/([^\/]+)@e', '$var[\'\\1\']=strip_tags(\'\\2\');', implode('/',$paths));
// 替换为支持php7的preg_replace_callback函数。
preg_replace_callback('/(\w+)\/([^\/]+)/',
function ($matches) use (&$var) {
$var[$matches[1]] = strip_tags($matches[2]);
},
implode('/',$paths));
2、ThinkPHP/Lib/Core/Db.class.php:605
// $joinStr = preg_replace("/__([A-Z_-]+)__/esU",C("DB_PREFIX")."strtolower('$1')",$joinStr);
// 替换为
$joinStr = preg_replace_callback("/__([A-Z_-]+)__/sU", function($matches){
return C("DB_PREFIX").strtolower($matches[1]);
}, $joinStr);