运行CakePHP shell时发出preg_replace_callback()警告

时间:2012-01-27 19:00:13

标签: php cakephp-2.0 cakephp-2.1

我正在跑步: Apache 2 PHP 5.3.3 CentOS的

当我检查pcre时,我看到了:

pcretest -C

PCRE version 6.6 06-Feb-2006
Compiled with
  UTF-8 support
  Unicode properties support
  Newline character is LF
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

但是,在尝试运行shell时,我得到以下内容:

Warning: preg_replace_callback(): Compilation failed: unrecognized character after (?< at offset 4 in /var/CakePHP/cakephp_2.0.5/lib/Cake/Console/ConsoleOutput.php on line 186

我已经阅读了所有关于PHP版本的门票,确保pcre是最新的,并确保pcre在cakephp错误列表中具有unicode支持。任何想法如何解决这个问题,以便我可以在CakePHP 2.0.5中运行控制台命令?

更新

对不起,这是第185行的代码:

return preg_replace_callback(
   '/<(?<tag>[a-z0-9-_]+)>(?<text>.*?)<\/(\1)>/ims', array($this, '_replaceTags'), $text
);

另请注意,此功能目前适用于其他地方(即在我的MacBook Pro上运行)

2 个答案:

答案 0 :(得分:3)

对此有一个简单的单行修复。查看差异:

https://github.com/cakephp/cakephp/pull/681/files

答案 1 :(得分:0)

看起来需要升级到pcre。