Tobias Kloth: Problem mit PHP Highlighting und Templates

Beitrag lesen

Hallo Razor,

Das geht leider gar nicht, weil dann will er ja den PHP Code auch parsen, was natürlich unweigerlich zu einer Fehlermeldung führt.

stimmt (ich habe es mal ausprobiert) - ich habe aber noch eine andere Idee :-) - verwende preg_replace_callback:

$text = preg_replace_callback("~[PHP](.*?)[/PHP]~i","hs",$text);

wobei der zweite Parameter einen Funktionsnamen erwartet. Die Funktion hs (du kannst ja einen aussagekräftigeren Namen vergeben) sieht so aus:

function hs($m){ return highlight_string($m[1],true); }

ggf. musst du eben noch innerhalb der Funktion hs Sachen die dir nicht gefallen (z.B. <font> durch <span> o.ä.) ersetzen. Wichtig ist der 2. Parameter der Funktion highlight_string der dafür sorgt, dass die Funktion den farbigen code zurück-, und nicht direkt ausgibt (das funktioniert allerdings erst ab Version 4.2.0).

Grüße aus Nürnberg
Tobias

--
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|