Was Codierung ist dies ... und wie Sie es in PHP zu entkommen?
-
21-09-2019 - |
Frage
Im Arbeits auf einem imdb Daten Schaber für eine Website, und ich scheinen sie zu kodieren alles in eine seltsame Codierung sah ich nie zuvor.
<a href="/keyword/exploding-ship/">Exploding Ship</a>
A Bug's Life
Gibt es eine PHP-Funktion, die diese regelmäßig Zeichen umwandeln?
Lösung
Dies ist nicht codiert, es HTML-Entitäten Hexadezimal-Codes.
Versuch
$converted = html_entity_decode($string, ENT_QUOTES, 'UTF-8');
Andere Tipps
Das ist SGML Zeichen entkommen. Sie können entweder dezimal sein ('
) oder hexadezimal ( 
) und direkt mit einem Unicode-Codepunkt beziehen.
html_entity_decode () sollte in PHP arbeiten 5. Obwohl ich kann nicht Test im Moment.
Im ersten Kommentar auf dieser Referenzseite, wird der folgende Code für ältere PHP-Versionen gegeben:
// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
// replace numeric entities
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
// replace literal entities
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow