preg_replace_callback () предупреждение при запуске оболочки CakePHP - PullRequest
2 голосов
/ 27 января 2012

Я бегу: 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

Однако при попытке запустить оболочку я получаю следующее:

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. Любые идеи, как решить эту проблему, чтобы я мог запускать консольные команды в CakePHP 2.0.5?

UPDATE:

Извините, вот код в строке 185:

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

Также обратите внимание, что в настоящее время это работает в другом месте (т.е. работает на моем MacBook Pro)

Ответы [ 2 ]

3 голосов
/ 01 июня 2012

Для этого есть простое однострочное исправление.Проверьте разницу в:

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

0 голосов
/ 28 января 2012

Похоже, требуется обновление до pcre.

...