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&#xA0;Ship</a>
A Bug&#x27;s Life

Gibt es eine PHP-Funktion, die diese regelmäßig Zeichen umwandeln?

War es hilfreich?

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 (&#39;) oder hexadezimal (&#xA0) 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
scroll top