Domanda

sto lavorando su un raschietto dati imdb per un sito, e mi sembrano codificare tutto in una codifica strano non ho mai visto prima.

<a href="/keyword/exploding-ship/">Exploding&#xA0;Ship</a>
A Bug&#x27;s Life

C'è una funzione PHP che permette di convertire questi per personaggi regolari?

È stato utile?

Soluzione

Questa non è la codifica, è entità HTML codici esadecimali.

try

$converted = html_entity_decode($string, ENT_QUOTES, 'UTF-8');

Altri suggerimenti

Queste sono SGML caratteri di escape. Possono essere sia decimale (&#39;) o esadecimale (&#xA0) e si riferiscono direttamente ad un punto di codice Unicode.

html_entity_decode () dovrebbe funzionare in PHP 5. Anche se non posso provare in questo momento.

Nel primo commento su quella pagina di riferimento, il seguente codice è dato per le versioni di PHP più vecchie:

// 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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top