return ucfirst preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
php5.5版本以上 就废弃了 preg_replace 函数中 /e 这个修饰符,总共改了5个文件:
EcsTemplate.class.php第911行,
preg_replace_callback(): Requires argument 2, 'stripslashes(trim('\1','\''));', to be a valid callback in
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
这一段代码有两处需要修改:
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se'; 中的'e'要去掉
$source = preg_replace($pattern, $replacement, $source); 改为:
$source= preg_replace_callback($pattern, function ($matcher) { return '{include file=' . strtolower($matcher[1]). '}'; },$source);