Mit dem folgenden Codebeispiel ist es dir möglich zwischen den Tags [php]...[/php] eine Php Code farbig darstellen zu lassen, wobei der Text außerhalb dieser Klammern unberührt bleibt.
<?php
function bb_code($text) {
/**********************************************
* Autor: Michael Müller, 30.07.2003, 17:55
**********************************************/
# Config #
// Header und Footer beschreiben, wie...
// der farbige PHP-Code umschlossen wird
$header_php = '<br/><br/><div>PHP-CODE:<br/><br/><code>';
$footer_php = '</code></div><br/>';
# Ab hier nichts mehr ändern #
# PHP-Code-Blöcke zwischenspeichern #
$c = md5(time());
$pattern = "/\[php\](.*?)\[\/php\]/si";
preg_match_all ($pattern, $text, $results);
for($i=0;$i<count($results[1]);$i++) {
$text = str_replace($results[1][$i], $c.$i.$c, $text);
}
# PHP-Code-Blöcke zwischenspeichern #
# alles, was die Codeblöcke nicht betrifft #
$text = htmlentities($text);
# alles, was die Codeblöcke nicht betrifft #
# PHP-Code-Blöcke umwandeln #
for($i=0;$i<count($results[1]);$i++) {
ob_start();
highlight_string(trim($results[1][$i]));
$ht = ob_get_contents();
ob_end_clean();
$all = $header_php.$ht.$footer_php;
if(function_exists("str_ireplace")) {
$text = str_replace("[php]".$c.$i.$c."[/php]",$all,$text);
} else {
$text = str_replace("[php]".$c.$i.$c."[/php]",$all,$text);
$text = str_replace("[PHP]".$c.$i.$c."[/PHP]",$all,$text);
}
}
# PHP-Code-Blöcke umwandeln #
// Text zurückgeben
return $text;
}
echo bb_code($text);
?>
Quelle: php4u.net