[РЕШЕНО] Ошибки preg_match(): Compilation failed: после обновления PHP

ion-lane

Только зашёл
Регистрация
29.01.2015
Сообщения
2
Реакции
0
Обновил PHP на версию 5.5 и на каждой странице появились такие ошибки
Код:
Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /var/www/mediawiki/includes/MagicWord.php on line 902

Вот кусок MagicWord.php на который ругается:
PHP:
if ( preg_match( $regex, $text, $m ) ) {
                                list( $id, ) = $this->parseMatch( $m );
                                if ( strlen( $m[0] ) >= strlen( $text ) ) {
                                        $text = '';
                                } else {
                                        $text = substr( $text, strlen( $m[0] ) );
                                }
                                return $id;
                        }

При этом страница загружается как обычно, но не видно самого контента. Если править страницу, то он есть в редакторе. Можно конечно отключить вывод ошибок через .htaccess, но контент на страницу это не вернет.
Пробовал откатиться на php5.4, не помогло.

PS. вообще, обновлений было много, в том числе Wikimedia и gcc.
 

Обновился до:
gcc-4.8.3
mediawiki-1.23.8

Спасибо за ссылку, действительно есть такой баг.
Как применить этот патч я так и не понял, изменил файл MagicWord.php вручную как написано в самом патче https://git.wikimedia.org/patch/mediawiki/core.git/b9f291e8cd5bb1450f7b1031aa17cf7775aa7e96

Удалил строку:
PHP:
$group = "(?P<{$i}_{$name}>" . preg_quote( $syn, '/' ) . ')';

И после нее добавил две строки:
PHP:
$it = strtr( $i, '0123456789', 'abcdefghij' );
$group = "(?P<{$it}_{$name}>" . preg_quote( $syn, '/' ) . ')';

Ошибки пропали, частично появился контент, но на некоторых не появился. У меня wiki не большое, поэтому просто зашел в редактирование страницы и записал ее.
 
Ну я бы на вашем месте обновился до стабильной 1.24
 
Назад
Верх