Архив

< Сентябрь 2019 >
П В С Ч П С В
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Вход на сайт

Тэги

Блог Alex Delphine

Здесь я оставляю разные свои мысли.

 

PHPПосле обновления скрипта подсветки синтаксиса кода GeSHi до версии 1.0.8.4, после вставки кода PHP появляетя ошибка:

PHP Warning:  preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /libraries/geshi/geshi.php on line 2132

Ошибка происходит в коде:

Код PHP
if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work.
 preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {

Решение. В файле /libraries/geshi/geshi/php.php находим код:

Код PHP
 4 => "/(?<start><\\?(?>php\b)?)(?:".
 "(?>[^\"'?\\/<]+)|".
 "\\?(?!>)|".
 "(?>'(?>[^'\\\\]|\\\'|\\\\\\\|\\\\)*')|".
 "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
 "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
 "\\/\\/(?>.*?$)|".
 "\\/(?=[^*\\/])|".
 "<(?!<<)|".
 "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>".
 ")*(?<end>\\?>|\Z)/sm",
 5 => "/(?<start><%)(?:".
 "(?>[^\"'%\\/<]+)|".
 "%(?!>)|".
 "(?>'(?>[^'\\\\]|\\\'|\\\\\\\|\\\\)*')|".
 "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
 "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
 "\\/\\/(?>.*?$)|".
 "\\/(?=[^*\\/])|".
 "<(?!<<)|".
 "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>".
 ")*(?<end>%>)/sm",

и меняем на код:

Код PHP
4 => "/(<\?(?:php)?)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
5 => "/(<%)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm",
Скачать:
ФайлОписаниеРазмер файлаСкачено
Скачать этот файл (GeSHi-1.0.8.4-php.php.zip)GeSHi-1.0.8.4-php.php.zipИзмененый файл php.php для GeSHi-1.0.8.416 Kb133


У Вас не достаточно прав, для того что бы оставлять комментарии.