Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

PHP WTF #9

html_entity_decode verwandelt bekanntlicherweise Entities wie ü oder & in ihre Pendandts ü / &.

var_dump(html_entity_decode("&")); //string(1) "&" 

Soviel also dazu, soweit erwartungsgemäß. Enter the weirdness:

<meta charset="utf8"> <?php var_dump(trim(html_entity_decode(" "))); //string(2) " " 

Das Manual sagt dazu:

Sie wundern sich vielleicht, warum trim(html_entity_decode(‚ ‚)); den String nicht zu einem leeren Sting reduziert. Der Grund dafür ist, dass ‚ ‚ in der Standard-Kodierung nicht dem Zeichen mit ASCII-Code 32 entspricht (dieses wird von trim() entfernt), sondern dem Zeichen mit ASCII-Code 160 (0xa0).

Genaugenommen verhält sich hier PHP vollkommen korrekt, denn ein Non-Breaking-Space entspricht eben dem ASCII-Code 160. Und der wird leider nicht von trim in der Standardkonfiguration entfernt (siehe 2. Parameter). Auf Stackoverflow wurde das auch diskutiert und zu solch barbarischen Methoden wie str_replace geraten.