Codificação na leitura de um XML
Falaee, galera :D
to com um problemão... seguinte:
PHP
[*]
[*].
[*].
[*].
[*]if ( $file != '.' && $file != '..' ) {
[*]
[*] $fp = fopen("./products/".$file, 'r');
[*] $xmlfile = fread($fp, filesize("./products/".$file));
[*]
[*] fclose($fp);
[*]
[*] $fp = xml_parser_create("ISO-8859-1");
[*]
[*] xml_parse_into_struct($fp,$xmlfile,$vals,$cont);
[*] xml_parser_free($fp);
[*]
[*]for ( $i=0; $i<count($vals); $i++ ) {
[*] $node = $vals[$i]; #Dentro tem, tag, type, level e value
[*]
[*] switch ( strtolower($node['tag']) ) {
[*] case 'productdetails':
[*]
[*] $idFamily = $node['attributes']['IDFAMILY'];
[*] $idProduto = $node['attributes']['ID'];
[*] $modelo = $node['attributes']['NAME'];
[*] $subfamily = $node['attributes']['SUBFAMILY'];
[*] $content = $node['value'];
[*]
[*].
[*].
[*].
[*]
isso é apenas um fragmento do meu código.
o problema? vejam a variável $content.... isso é um texto, vindo de um <textarea> cheio de acentos agudos, circunflexos, tremas, cedilhas....
quando vou gravar isso no banco de dados, sai tudo errado!!!
errado nao... sai tudo CODIFICADO!
instalação, por ex, sai 'instalação'...
eu ja tentei de tudo: str_replace em todas os acentuados, já mudei pra todas as codificações suportadas pela xml_parser_create, ja tentei usar utf8_encode e utf8_decode, nada dá certo! ele continua cadastrando errado no bd... já tentei tb descomentar a linha do php.ini q fala sobre codificação de caracteres....
mas nada funciona.
alguma alma viva já passou por esse problema?? alguem sabe de alguma solução??
só por curiosidade... o script inteiro pega um arquivo xml, explode ele em varias partes pra alimentar uma base sql co seus respectivos campos em 3 tabelas.
se alguem souber... agradeço :(
Discussão (2)
Carregando comentários...