common/common.php 第215 行
function parse_name($name, $type=0) {
if ($type) {
// return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));
return ucfirst(preg_replace_callback("/_([a-zA-Z])/", function ($match) {
return strtoupper($match[1]);
}, $name));
} else {
return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
}
}
其中有Think\Lib\Template\ThinkTemplate.class.php和ThinkPHP\Lib\Core\Dispatcher.class.php两处需要修改
(一)修改Think\Lib\Template\ThinkTemplate.class.php
这一步是为了让模板兼容
请先覆盖Thinkphp论坛解决方案
覆盖完这个文件先别急,这时候运行会发现报错了:
Call to undefined method TagLib::_()
这是因为闭包函数不能直接使用外部变量。
把417行(左右)
$content = preg_replace_callback($patterns, function($r) {
return $this->parseXmlTag($tagLib, $tag, $r[1], '');
},$content);```
改为:
$content = preg_replace_callback($patterns, function($r) use ($tagLib,$tag) {
return $this->parseXmlTag($tagLib, $tag, $r[1], '');
},$content);