View difference between Paste ID: EPy6PrC0 and FfCJehwf
SHOW: | | - or go back to the newest paste.
1
if(mb_detect_encoding($conteudo, "UTF-8, ISO-8859-1") != "UTF-8"){
2-
        $conteudo= htmlspecialchars_decode($conteudo); // Tem que rodar antes das substituições abaixo
2+
3
        // Tem que passar a conversão 2x para dar certo. por exemplo a palavra alegação pode vir assim:
4
        //        alegação
5
        // alegação => alegação na primeira conversão
6
        // alegação => alega��o Agora é só passar um utf_encode e pronto!
7
        $conteudo= decode_entities_full( decode_entities_full( $conteudo ) );
8
9
        // Mas antes de converter ainda existem caracteres como &ndash, &rsquo entre outros...
10-
        $conteudo = utf8_encode($conteudo); // Tem que fazer o encode pra utf8 aqui senão também não dá
10+
        // – e &rsquo estarão convertidos para – e ’ respectivamente.
11
        // Então o código de conversão anterior deve ser mantido para funcionar...
12
        $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $conteudo);
13
        $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
14
        $trans_tbl = get_html_translation_table(HTML_ENTITIES);
15
        $trans_tbl = array_flip($trans_tbl);
16
        $conteudo = strtr($string, $trans_tbl);
17
18
        $conteudo = utf8_encode($conteudo);
19
}
20
21
$xml = simplexml_load_string($conteudo);