我在使用Symfony 1.4 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /vagrant/lib/util/sfToolkit.class.php on line 365
有关功能如下:
public static function pregtr($search, $replacePairs)
{
if(strpos(implode(', ', $replacePairs),'e') > 0)
print_r($replacePairs);
return preg_replace(array_keys($replacePairs),array_values($replacePairs), $search);
}
有关的价值观是:
Array
(
[#/(.?)#e] => '::'.strtoupper('\1')
[/(^|_|-)+(.)/e] => strtoupper('\2')
)
如何使用preg_replace_callback
将其更改为等效的内容?
答案 0 :(得分:1)
您可以尝试使用sf 1.5。由L'Express的人员维护的版本:https://github.com/LExpress/symfony1(他们已经解决了问题)
如果他们的更改太多,您可以检查他们如何设法解决'e修饰符'问题并复制他们的解决方案。搜索代码以使用pregtr
时,看起来只有三个地方使用了e
修饰符(lib/util/sfInflector.class.php
中的Doctrine
和Proper
中的过滤器表单类{1}}插件)。在这些地方自己修复代码并不困难。