php: Ternärer Operator gibt immer dasselbe Ergebnis aus
bearbeitet von
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.
~~~php
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 "...").
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