Bei $ im echo gibt es Probleme
Nick
- php
0 dedlfix0 Steel0 johny70 Vinzenz Mai
Hallo,
folgendes Problem der String:
$Lautsprecher = " & $laenge >= ".$api_lautsprecher->laenge_min;
soll per echo $Lautsprecher;
anzeigen:
"& $laenge >= 14" (Ohne Anführungszeigen)
er zeigt an
"& >= 14" (Ohne Anführungszeigen)
Was mache ich falsch muss ich das $laenge escapen?
Hi!
soll [...] anzeigen:
"& $laenge >= 14" (Ohne Anführungszeigen)
er zeigt an
"& >= 14" (Ohne Anführungszeigen)
Was mache ich falsch muss ich das $laenge escapen?
Du beachtest die elementarsten String-Notationsregeln PHPs nicht.
Lo!
Moin!
Wenn Du bei php doppelte Anfuehrungszeichen verwendest interpretiert es Variablen und zeigt deren Werte an. Mit einfachen Anfuehrungszeichen wird das nicht gemacht. Du kannst also einfache Anfuehrungszeichen nehmen oder das $ escapen.
@@Steel:
nuqneH
Du kannst also einfache Anfuehrungszeichen nehmen oder das $ escapen.
… solltest aber ersteres tun.
Qapla'
Moin allerseits,
Hallo,
folgendes Problem der String:
$Lautsprecher = " & $laenge >= ".$api_lautsprecher->laenge_min;
soll per
echo $Lautsprecher;
anzeigen:"& $laenge >= 14" (Ohne Anführungszeigen)
er zeigt an
"& >= 14" (Ohne Anführungszeigen)
Was mache ich falsch muss ich das $laenge escapen?
Du musst das $ in Strings mit doppelten Anführungszeichen escapen. Richtig wäre also:
$Lautsprecher = " & \$laenge >= ".$api_lautsprecher->laenge_min;
Andernfalls versucht PHP an der Stelle den Inhalt der Variable $laenge aus zu geben.
Bei Strings in einfachen Anführungszeichen ist das nicht der Fall.
Das müsste dir aber mit einem vernünftigen Syntax-Highlighting schon beim Programmieren auffallen.
Grüße, JN
Hoi!
Das müsste dir aber mit einem vernünftigen Syntax-Highlighting schon beim Programmieren auffallen.
Wenn man ein entsprechendes Tool hat/verwenden darf.
@@johny7:
nuqneH
Du musst das $ in Strings mit doppelten Anführungszeichen escapen. Richtig wäre also:
$Lautsprecher = " & \$laenge >= ".$api_lautsprecher->laenge_min;
Nein, das ist nicht richtig.
Richtig ist es, den Parser nicht nach Variablen in Strings suchen zu lassen, wenn man dies nicht braucht. Also keine doppelten Anführungszeichen zu verwenden.
Außerdem muss '&' in HTML escapet werden; bei '>' schadet’s auch nicht. Also entweder
$Lautsprecher = '[code lang=html] & $laenge >=
'.$api_lautsprecher->laenge_min;[/code]
oder auf die feine Art
$Lautsprecher = ' & $laenge >= '.$api_lautsprecher->laenge_min;
und dann aber
echo htmlspecialchars($Lautsprecher);
Qapla'
PS: Warum sollte man „$laenge >= “ ausgeben wollen anstatt „Länge ≥ “?
Hallo,
folgendes Problem der String:
$Lautsprecher = " & $laenge >= ".$api_lautsprecher->laenge_min;
soll per
echo $Lautsprecher;
anzeigen:
im HTML-Kontext? Dann bitte mit kontextgerechter Behandlung
echo htmlspecialchars($Lautsprecher);
Dein Text enhält Zeichen, die
"& $laenge >= 14" (Ohne Anführungszeigen)
Möchtest Du den Text $laenge ausgeben oder den Inhalt der Variablen $laenge?
Ich nehme ersteres an.
er zeigt an
"& >= 14" (Ohne Anführungszeigen)
Was mache ich falsch
unnötigerweise doppelte Anführungszeichen verwenden statt einfacher.
muss ich das $laenge escapen?
Bei Verwendung von doppelten Anführungszeichen, ja.
Siehe PHP-Handbuch, Strings.
Freundliche Grüße
Vinzenz