database.php中的Kohana preg_replace错误

时间:2014-08-11 13:23:21

标签: php kohana kohana-3 kohana-orm

ErrorException [8192]:preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback 上 http://mastersoftwaretechnologies.com/kohana/index.php/user/login

2 个答案:

答案 0 :(得分:3)

这适用于我的kohana-3.2

替换

$column = preg_replace('/"(.+?)"/e', '$this->quote_column("$1")', $column);

$column = preg_replace_callback('/"(.+?)"/', function($m) { return $this->quote_column($m[1]); }, $column);

在文件MODPATH / database / classes / kohana / database.php第525行

答案 1 :(得分:0)

看起来你正在使用php 5.5。如果你想使用preg replace eval,你必须修改它,因为出于安全原因它已被弃用:http://php.net/manual/en/migration55.deprecated.php

使用php 5.5,你应该使用preg_replace_callback()

您可以在这里找到很好的例子:Replace deprecated preg_replace /e with preg_replace_callback

并在此处了解其工作原理:Replace preg_replace() e modifier with preg_replace_callback

只需相应地修改第二个参数就可以了解匹配的内容。