Hi,
Jemand eine Idee woran das liegt?
nein - leider nicht. Ich habe aber noch einen anderen Vorschlag: ich würde bei preg_replace den Parameter /e benutzen, der den ersetzenden Code ausführt, also in etwa so:
$text = preg_replace("/[PHP](.*?)[/PHP]/sie", "highlight_string(stripslashes('\1'), true)", $text);
Statt highlight_string() kannst du natürlich dann auch deine Funktion php_code() einsetzen.
Gruß,
Andreas.