Ich arbeite gerade an einer Funktion mit der man String, die mit PHP htmlentities() Funktion Umgewandelt worden sind:
Rauml;tsel
zurück zu wandeln in
Rätsel
weil jemand die Werte so in die Datenbank gespeichert hat, wahrscheinlich ich 🙂
Dazu hab ich die folgende Funktion gebaut, die mir komischerweise ein Array durchläuft, dass nicht die Werte beinhaltet, die man erwarten würde:
HtmlEntitesReplacer::displayHtmlEntities(); class HtmlEntitesReplacer { public static function displayHtmlEntities() { $i = 0; $umlaute = HtmlEntitesReplacer::getUmlauteArray(); echo "Das Umlaute Array hat ".count($umlaute)." Werte<br>"; foreach($umlaute as $umlautFalsch =>$umlaut) { $htmlEnties = str_replace("&", "&amp;",htmlentities($umlaut)); echo "$i) $umlautFalsch <=> $htmlEnties' <=> $umlaut <br> "; $i++; } die(); } private function getUmlauteArray() { return array( 'ü'=>'ü', 'ä'=>'ä', 'ö'=>'ö', 'Ö'=>'Ö', 'ß'=>'ß', 'à '=>'à', 'á'=>'á', 'â'=>'â', 'ã'=>'ã', 'ù'=>'ù', 'ú'=>'ú', 'û'=>'û', 'Ù'=>'Ù', 'Ú'=>'Ú', 'Û'=>'Û', 'Ãœ'=>'Ü', 'ò'=>'ò', 'ó'=>'ó', 'ô'=>'ô', 'è'=>'è', 'é'=>'é', 'ê'=>'ê', 'ë'=>'ë', 'À'=>'À', 'Ã'=>'Á', 'Â'=>'Â', 'Ã'=>'Ã', 'Ä'=>'Ä', 'Ã…'=>'Å', 'Ç'=>'Ç', 'È'=>'È', 'É'=>'É', 'Ê'=>'Ê', 'Ë'=>'Ë', 'ÃŒ'=>'Ì', 'Ã'=>'Í', 'ÃŽ'=>'Î', 'Ã'=>'Ï', 'Ñ'=>'Ñ', 'Ã’'=>'Ò', 'Ó'=>'Ó', 'Ô'=>'Ô', 'Õ'=>'Õ', 'Ø'=>'Ø', 'Ã¥'=>'å', 'æ'=>'æ', 'ç'=>'ç', 'ì'=>'ì', 'Ã'=>'í', 'î'=>'î', 'ï'=>'ï', 'ð'=>'ð', 'ñ'=>'ñ', 'õ'=>'õ', 'ø'=>'ø', 'ý'=>'ý', 'ÿ'=>'ÿ', '€'=>'€' ); }
kommt bei der Ausgabe nur auf i=34, obwohl es 57 Sonderzeichen von der Methode getUmlauteArray() zurückgegeben werden.