Я использую CodeIgniter вместе с функцией highlight_code("$string");
( Подробнее ) для подсветки синтаксиса для динамического сайта. Я хочу, чтобы пользователи могли отправлять свои собственные сообщения, написанные в формате BBCode. Для этого я использую библиотеку NBBC PHP .
Моя проблема в том, что, как я это делаю, я не могу заставить NBBC выделять только синтаксис [code][/code]
тегов, которые вводят мои пользователи. Вот PHP для [code]:
'code' => Array(
'mode' => BBCODE_MODE_ENHANCED,
'template' => "\n<div class=\"bbcode_code\">\n<p>Code:</p>\n<code><?php $highlight_code(\"?>{\$_content/v}<?php \");?></code>\n</div>\n",
'class' => 'code',
'allow_in' => Array('listitem', 'block', 'columns'),
'content' => BBCODE_VERBATIM,
'before_tag' => "sns",
'after_tag' => "sn",
'before_endtag' => "sn",
'after_endtag' => "sns",
'plain_start' => "<div id=\"footer\">",
'plain_end' => "</div>",
'simple_start' => '\n<div class=\"bbcode_code\">\n<p>Code:</p>\n<code>',
'simple_end' => '</code>\n</div>\n',
),
Если вы видите строку с надписью <?php $highlight_code(\"?>{\$_content/v}<?php \");?>
, которую я указывал там, я подумал, что это выделит код, содержащийся в тегах. Я не могу вспомнить, что это выводит (я пробовал много разных комбинаций), но самое близкое, что я получил, это то, что он экспортировался как текст из PHP - в моем исходном коде XHTML он просто отображался как текст.
Что можно сделать, чтобы весь контент в tags on a page be syntax-highlighted, ideally using highlight_code($string); or similar?</p>
<p>I was thinking <code>preg_replace
был бы вариантом, но я не знаю, как это сделать, чтобы динамически заменить все между выводимыми тегами (не [code], помните, но HTML, который Выходы NBBC).