【发布时间】:2017-05-18 16:16:08
【问题描述】:
我从 PHP 5.4 的应用程序中获得了这段代码:
$rightKey = preg_replace(array(
"/(_)(\p{L}{1})/eu",
"/(^\p{Ll}{1})/eu"
), array(
"mb_strtoupper('\\2', 'UTF-8')",
"mb_strtoupper('\\1', 'UTF-8')"
), $key);
它没有很好地工作,因为 preg_replace 已被弃用。我做了一些研究并将其变成:
$rightKey = preg_replace_callback(array(
"/(_)(\p{L}{1})/u",
"/(^\p{Ll}{1})/u"
), function($m) { return array(
"mb_strtoupper('\\2', 'UTF-8')",
"mb_strtoupper('\\1', 'UTF-8')"
); }, $key);
我把函数改成了preg_replace_callback,去掉了“e”,加了一个回调。
但现在我有:
Array to string conversion
而且,我真的不知道如何调整回调以使其正常工作^^。
谢谢:),
【问题讨论】:
标签: php regex zend-framework preg-replace preg-replace-callback