Hallo,
var_dump($html) sagt dazu string(1) "€" mit jeweils dem entsprechenden Sonderzeichen.
Dann müsste das hier, wider jeglicher Logik, in deinem Fall bool(false) liefern:
<?php
$html = '€';
var_dump($html == '€');
?>
wie das? Ich fürchte, das solltest du erklären.
> > string(1) steht aber immer da
Dann kann der String -was immer er sonst enthält- schonmal kein UTF-8-codiertes Euro-Symbol enthalten, denn das wären 3 Bytes, die dann als string(3) angezeigt werden müssten. Der PHP-Quellcode aus dem Eingangsposting ist aber mit hoher Wahrscheinlichkeit UTF-8, da er Zeichen enthält, die in den gängigen 1Byte-Codierungen nicht darstellbar sind.
Fazit: Wir haben Stringkonstanten im Script, die in UTF-8 codiert und teilweise 2 bis 3 Bytes belegen, und vergleichen sie mit Eingaben, die in einer 1-Byte-Codierung ankommen. Da kann Gleichheit nur im ASCII-Bereich auftreten.
> Das liegt daran, dass $html offenbar den Datentyp "string" mit der Länge "1" beinhaltet :)
Ja, zweifellos - aber wie passt dieser Satz in das Bild, das \*du\* meintest?
Ciao,
Martin
--
[Butterkeksverteiler](http://community.de.selfhtml.org/zitatesammlung/zitat171) zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
(wahsaga)