Php HHVM不推荐使用preg_replace()/e修饰符
Symfony 1.4Php HHVM不推荐使用preg_replace()/e修饰符,php,regex,symfony-1.4,hhvm,Php,Regex,Symfony 1.4,Hhvm,Symfony 1.4不推荐使用:preg_replace():不推荐使用/e修饰符,请在第365行的/vagrant/lib/util/sfToolkit.class.php中使用preg_replace_回调 有关职能如下: public static function pregtr($search, $replacePairs) { if(strpos(implode(', ', $replacePairs),'e') > 0) print_r($replac
不推荐使用:preg_replace():不推荐使用/e修饰符,请在第365行的/vagrant/lib/util/sfToolkit.class.php中使用preg_replace_回调
有关职能如下:
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\u replace\u callback
将其更改为等效值?您可以尝试使用sf 1.5。由L'Express的家伙维护的版本:(他们已经解决了问题)
如果他们的更改太多,您可以检查他们是如何解决“e修饰符”问题的,并复制他们的解决方案。搜索代码以使用pregtr
看起来只有三个地方使用了e
修饰符(在lib/util/sfindlector.class.php
和原则中的过滤器形式类和正确的插件中)。在这些地方自己修复代码并不难。您应该将symfony升级到不使用此代码的版本/这非常危险。Eval是邪恶的/e和eval是一样的。。。(您确定要这样做吗?评估可能是一个安全问题!)