Архив

< Март 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 31

Вход на сайт

Тэги

Блог Alex Delphine

Здесь я оставляю разные свои мысли.
Теги >> GeSHi
19 Сен. 2009

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",

19 Сен. 2009

GeSHi - Generic Syntax HighlighterВ Joomla 1.5 для подсветки синтаксиса кода используется скрипт GeSHi. Последняя версия на сегодняшний день  GeSHi 1.0.8.4 позволяет подсвечивать синтаксис кода, написанного на любом из 138 языков. GeSHi использует подключаемые файлы с описанием синтаксиса языков, что обеспечивает простоту добавления новых описаний.

Для использования в Joomla 1.5 необходимо в тело материала вставить следующий код:

Код PHP
<pre xml:lang="php">
<?php echo 'test'; ?>
</pre>

В атрибуте "lang" указываем язык кода, который Вы вставляете, допустим: css, php, java, javascript, perl, xml, sql и др. В результате чего на странице вы получите следующее содержание:

Код PHP
<?php echo 'test'; ?>