Rolf B: php: Ternärer Operator gibt immer dasselbe Ergebnis aus

Beitrag lesen

Hallo Rick,

Und es fällt mir auch keine andere Idee ein, als dass das hier das Problem ist

Bei PHP wird in jedem String, der in doppelten Anführungszeichen steht, das \ als Escapezeichen erkannt.

echo "Hall\25b2 o";

Hier würde PHP die Sequenz \25 als oktale Escapesequenz auffassen, d.h. ein Zeichen mit dem Code 2×8+5=21 generieren. Wie diese dann bei ISO-8859-1 über die Leitung geht - keine Ahnung.

Ist das so? Gibst Du diese CSS Regel mit einem PHP echo aus und der ge-echo-te String steht in doppelten Anführungszeichen? Muss das sein? Es gibt Alternativen - eine ist das vorübergehende Verlassen des PHP Modus mit ?> <?php, eine andere ist ein Echo mit einfachen Anführungszeichen (worin dann aber auch keine Variablen mehr ersetzt werden), die dritte wäre ein Nowdoc-String (Nowdoc verhält sich zu Heredoc wie '...' zu "...") ⇒ Handbuch.

Und natürlich könnte man im echo auch \\ statt \ schreiben, also das Escapezeichen für CSS in PHP escapen. Aber das artet dann schnell in \\\\\\\-Orgien aus… Deswegen: Aus PHP heraus sollte man HTML nach aller Möglichkeit nicht mit echo ausgeben.

Rolf

--
sumpsi - posui - obstruxi