Mal wieder eine BBCode Frage

ruNN0r

Erfahrenes Mitglied
hi,
ich habe ein sehr gut funktionierende BBCode funktion.
Ich habe die funktion immer wieder erfolgreich erweitert.
Nun ist es wieder soweit. Ich möchte gerne bei mir auf der seite auch mit dem BBCode [ PHP ] $huhu [ /PHP ] arbeiten. So das es so angezigt wird:
PHP:
$huhu
ebenfalls in den farben. Ist das möglich? Bestimmt. Aber wie komplex ist das?

Hier ein kleiner Ausschnitt von meinem BBCode:
PHP:
function bbcode($text,$zusatz)
{
    $text = stripslashes($text); //Unnütze Slashes löschen
    $text = htmlspecialchars($text);  //Umlaute in HTML-Code umwandeln (& wird &)
    $text = preg_replace("/\[B\](.*)\[\/B\]/isU","<b>$1</b>", $text);
    $text = nl2br($text);
    return $text;
}

Ich hoffe Ihr könnt mir helfen.

Schon mal besten dank für eure mühe.
 
Moin,

das ist einfacher, als du vielleicht denkst. :)

Du musst nur den zu ersetzenden Text, also $huhu, mit der Funktion [phpf]highlight_string[/phpf] verarbeiten(ohne dort vorher irgendwas umzuwandeln oder zu ersetzen...mal von stripslashes() abgesehen, falls magic_quotes_gpc aktiviert ist)
 
Super vielen dank.
Habe nun noch gesucht wie ich es am besten bzw. richtig einbinde.
Hab da irgendwie meine Probleme.
meine versuche waren aktuell:
PHP:
$text = preg_replace("/\[PHP\](.*)\[\/PHP\]/isU",highlight_string("$1"), $text);//gibt 1 zurück
$text = preg_replace("/\[PHP\](.*)\[\/PHP\]/isU",highlight_string('$1'), $text);//gibt 1 zurück
$text = preg_replace("/\[PHP\](.*)\[\/PHP\]/isU",highlight_string($1), $text);//gibt nen fehler zurück

//eingebunden in mein script so:
function bbcode($text,$zusatz)
{
    $text = stripslashes($text); //Unnütze Slashes löschen
    //hier die oben stehende Zeile
   $text = htmlspecialchars($text);  //Umlaute in HTML-Code umwandeln (& wird &amp;)
    $text = preg_replace("/\[B\](.*)\[\/B\]/isU","<b>$1</b>", $text);
    $text = nl2br($text);
    return $text;
}
Leider keinen erfolg.
Hab noch andere versuche gemacht aber...
ob_start() ist ebenfalls inaktiv!

Evtl. hast du/ihr nen tipp für mich?!
 
Du musst die Flag e benutzen, damit PHP-Code im Replacement verarbeitet wird.

Weiterhin: highlight_string() besitzt einen optionalen 2.Parameter, über welchen du festlegen kannst, ob das Ergebnis ausgegeben wird(false) oder zurückgegeben(true)
Der Standardwert ist dort false...du musst also true übergeben.

Beispiel:
Code:
echo preg_replace("/\[PHP\](.*)\[\/PHP\]/eisU",
                  "highlight_string('$1',true)", 
                  '[ php ]<?php echo es_klappt($bbcodetest);?>[ /php ]'
                 );
 
Klappt nicht so ganz.
Die Farben sind totales wirrwarr^^
Aber das muss irgendwie mit meiner Funktion zusammenhängen! Will da nun auch nicht alles umwerfen. So wichtig ist die [ PHP ] Funktion nicht für mich.

Besten dank für deine Hilfe.
 
Zuletzt bearbeitet:
Zurück