Seite 1 von 1

html_entity_decode()

Verfasst: Mo 30. Aug 2010, 18:32
von BagHira
Servus zusammen,

nach einem Update von Contenido 4.8.12 auf 4.8.13 erhalte ich die folgende Fehlermeldung:

Code: Alles auswählen

PHP Warning:  html_entity_decode() [<a href='function.html-entity-decode'>function.html-entity-decode</a>]: charset `I' not supported, assuming iso-8859-1 in /daserver/create/contenido/includes/functions.con2.php on line 536
Es handelt sich hierbei um die Seite aus der Signatur...
Hier die Serverumgebung: http://www.handgewickelte-glasperlen.de/module/info.php

Kann damit jemand etwas anfangen?

Re: html_entity_decode()

Verfasst: Mo 30. Aug 2010, 22:25
von xmurrix
Hallo BagHira,

es handelt sich hier um die Stelle, in der die Metatags der Seite generiert werden. Vermutlich gibt kommt da ein String vor, das Zeichen enthält, die nicht im Zeichensatz ISO-8859-1 vorkommen.

Die Funktion html_entity_decode() ist dort neu eingefügt worden, um andere Probleme zu lösen, die früher entstanden sind - Jetzt macht es halt bei dir Probleme ;-)

Versuche mal herauszufinden, bei welchen Seiten der Fehler produziert wird. Eventuell lassen sich die Texte auf ISO umstellen, was in deinem Fall vermutlich richtiger wäre. Wenn die Ausgabe der Seite in ISO-8859-1 sein soll, aber Inhalte der Metatags Zeichen außerhalb von ISO-8859-1 haben, fällt das vorserst nicht auf, weil keiner in der Regel sich den Quellcode anschaut.


Nachtrag:
kummer hat mit seiner Anmerkung recht (siehe nächsten Post), daher kannst das, was ich geschrieben habe, vergessen.
Irgendwo wird vermutlich die globale Variable $encoding überschrieben, vermutlich in irgend einem Modul?
Die Variable $encoding sollte eine Liste der Encodings enthalten, in deinem Fall ist da wohl ein String drin, daher liefert $encoding[$lang] ein Zeichen zurück...

Gruß
xmurrix

Re: html_entity_decode()

Verfasst: Di 31. Aug 2010, 09:40
von kummer
BagHira hat geschrieben:

Code: Alles auswählen

PHP Warning:  html_entity_decode() [<a href='function.html-entity-decode'>function.html-entity-decode</a>]: charset `I' not supported, assuming iso-8859-1 in /daserver/create/contenido/includes/functions.con2.php on line 536
die entsprechende stelle im code sieht so aus:

Code: Alles auswählen

$value['content'] = html_entity_decode($value['content'], ENT_QUOTES, strtoupper($encoding[$lang]));
und die fehlermeldung deutet darauf hin, dass an dieser stelle strtoupper($encoding[$lang]) eben ein I ausgibt, anstatt iso-8859-1 oder eben ein anderes encoding. das sollte nichts mit dem inhalt zu tun haben, der an dieser stellte umzusetzen ist. es heisst ja nicht, dass ein zeichen nicht hat konvertiert werden können, sondern dass das encoding eben nicht bekannt ist.

gib doch einfach mal an dieser stelle ein var_dump des ausdrucks strtoupper($encoding[$lang]) aus.

Code: Alles auswählen

var_dump(strtoupper($encoding[$lang]));
und kontrollier mal, welches encoding für die gewählte sprache gesetzt ist. das ist möglicherweise auch schon falsch.

Re: html_entity_decode()

Verfasst: Di 31. Aug 2010, 16:18
von BagHira
Vielen Dank ihr beiden :wink:

Es ist tatsächlich so, das die Variable $encoding überschrieben wurde (suche in con_code). Das Modul RSS Feed Generator überschreibt die Variable. Ich habe diese nun abgeändert... mal abwarten was passiert.

Spider IT werde ich PN informieren.

Re: html_entity_decode()

Verfasst: Mi 1. Sep 2010, 07:44
von kummer
solche dinge gehören eigentlich auch nicht in den globalen scope, sondern in eine registry. dann könnte sowas gar nicht geschehen. nur so als tipp am rande.