Архив

< Апрель 2024 >
П В С Ч П С В
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 Kb144


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