Der Martin: str_replace mit funktioniert nicht

Beitrag lesen

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)