Inhalt von bbcode in Variable speichern

Aah! Is klar, hast du den frage_text mit Double-Quotes erstellt? Wenn ja, is klar, warum es nicht geht, innerhalb Double-Quotes werden Variablen natürlich nicht als Text sondern als Variable angesehen. Mach mal folgenden Test:

PHP:
$a = 4;

echo "in a steht $a";
echo 'in a steht $a';

Folglich musst du das Dollarzeichen entweder escapen oder du verwendest Single-Quotes.
 
Ich frage mich was dein Test bringen soll. Wenn ich außerhalb von ein $ vorkommt wird dieses Angezeigt nur nicht eben bei dem was dazwischen steht, nicht das wir aneinander vorbeisprechen

Aah! Is klar, hast du den frage_text mit Double-Quotes erstellt?

Wie mit Double-Qoutes erstellt?
 
Der Test von saftmeister soll dir folgendes Zeigen:

PHP:
$a = 4;

echo "in a steht $a";
# Ausgabe: in a steht 4
echo 'in a steht $a';  
# Ausgabe: in a steht $a

Variablen werden in einfachen Anführungszeichen nicht interpretiert.

' = Single Quotes
" = Double Quotes
 
Ok, aber brauch ich ja garnicht da ich weiss das außerhalb von das $ zeichen angezeigt wird. Was ich auch jetzt sah ist das das $ Zeichen auch dazwischen angezeigt wird solange kein Wort direkt folgt, sprich

$test <-- Wird nicht angezeigt
$ test <-- Wird angezeigt
 
Das problem besteht weiterhin. Bis jetzt hab ich keine Lösung für das Problem gefunden aber es sollte doch möglich sein oder etwa nicht?
 
PHP:
$frage_text = '[ php]
<?php echo $test;?>
[/ php]';

$frage_text = preg_replace('/\[php\](.*?)\[\/php\]/ise', 'highlight_php("$1")', $frage_text);

echo $frage_text;

Du musst natürlich bei den BBCode-Tags die Leerzeichen entfernen.
 
Danke für die Hilfe nur funktionieren tut es immer noch nicht. ich jeweils zwei ausgaben einmal $frage_text und einmal $antwort mit dem jeweiligen Inhalt. $frage_text hab ich mit echo " $frage_text"; ausgegeben und $antwort mit echo ' '.$antwort '; doch bei beidem fehlt $test .

Hier zu sehen

Zudem kommt wenn jemand einen php code mit echo ' $test ' ; postet kommt
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/web5/html/forum/thread.php on line 90

ich kann natürlich nicht erwarten das immer nur " " benutzt werden. line 90 ist jetz nur da wo die ausgabe ist.
 
Zuletzt bearbeitet:
Dann escape das $-Zeichen, in dem du ein \ davor setzt. Kannst du mit str_replace oder einem regulären Ausdruck machen.
 
Zurück