К примеру, у вас есть форум типа vBulletin, где можно подсвечивать код, если его выделить специально:
любой код
. В итоге, после этого (при просмотре сообщения), получается красивый и цветной php-код. И так, если вы хотите, чтобы все куски между
..
и <?..?> воспринимались как код и раскрашивались, то это можно сделать довольно легко.
Текст программы.
// подавить предупреждения (в highlight_string есть глюки)
error_reporting(0);
// функция подсвечивания одного куска текста
function _my_($s,$a1,$a2) {
if ($a1!="<?") { $a1="<?"; $a2="?>"; }
$s=str_replace("\"",""",$s);
ob_start();
highlight_string($a1.$s.$a2);
$s=ob_get_contents();
ob_end_clean();
return $s;
}
// ищем в тексте все куски между <?... или [PHP]...
$str=preg_replace("!([php]|<?)(.*?)(|?>)!ise","_my_('\2','\1',
'\3')",$str);
echo $str;
?>[/PHP]
Как видно, все, что было между спец.строками подсветилось, а посторонний текст никак не изменился. Если вы собираетесь применять для форума, то подумайте и о переходах на новые строчки. Если у вас все сообщение - это сплошной код, то используйте highlight_string напрямую, без поиска <?..?> в коде...