Variabeln nicht auswerten
Daniel
- php
0 Kalle0 Achim Schrepfer
Habe folgendes Problem: Ich möchte einer Variable einen Wert zuweisen. Dieser Wert enthält aber wieder eine Variable($text), welche erst später definiert wird und jetzt noch nicht ausgewertet werden soll.
Bsp:
$format = "<font size='2'>$text</font>";
Später wird im Script dann die Variable $format eingebunden. Wie kann ich nun umgehen, dass die Variable $text schon beim definieren der Variable $format durch einen Wert ersetzt wird?
Funktioniert es allenfalls wenn ich $text mit "$text" definiere?:
$text="$text";
Kann dann später die Variable noch ausgewertet werden?
Hoffentlich versteht ihr was ich meine, ziemlich kompliziert diese Beschreibung...
Hi, Daniel,
Bsp:
$format = "<font size='2'>$text</font>";
ich habe es so verstanden, dass du einen Text hast, der einen Platzhalter beinhaltet. Der Platzhalter soll später durch einen anderen Text ersetzt werden.
So geht es:
$format = "<font size='2'>**Platzhalter**</font>";
$text = "Guten Tag";
$format = str_replace( "**Platzhalter**", $text, $format );
Lieben Gruß aus Worms, Kalle
Hallo Daniel,
zunächst einmal fände ich -und viele andere hier- es schön, wenn alle Postings eine Grußformel enthalten würden. Ist doch netter, oder?
Später wird im Script dann die Variable $format eingebunden. Wie kann ich nun umgehen, dass die Variable $text schon beim definieren der Variable $format durch einen Wert ersetzt wird?
Du kannst IMHO nicht verhindern, dass die Variablen expandiert werden. Der einzige Weg, der mir einfällt, sind Platzhalter. Du könntest folgendes tun:
$format = "<font size='2'>{MY_TEXT}</font>";
Zum Zeitpunkt, an dem $text den richtigen Wert enthält, machst Du dann eine Substitution:
echo preg_replace('/{MY_TEXT}/',$text,$format);
Das ersetzt im String $format den Platzhalter {MY_TEXT} durch den Inhalt von $text. Diese Vorgehensweise hat sich bei mir immer bewährt. Hoffe es hilft Dir weiter.
viele Grüße
Achim Schrepfer