Thinkphp3.1升级到php7运行环境


因为运行环境需要升级到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);

  

posted @ 2018-04-13 12:43  北里闻箫  阅读(632)  评论(0编辑  收藏  举报