Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal!
Começei com XML no fds, devido a necessidade de construir um retorno mais profissional pro meu sistema de cálculo de fretes e cep's offline (independente dos correios), ai apareceu o problema!
Aqui (Correios):
O retorno contém o encoding:
<?xml version="1.0" encoding="ISO-8859-1" ?>
E este retorno é tratado normalmente pelo meu sistema (cURL pra pegar os dados + Classe xmlLib pra converter os dados em array e facilitar o tratamento)
Mas quando eu ponho essa linha no meu arquivo xml, dá pau no retorno e o problema em não utilizar esta linha, como já devem ter percebido, na falta do encoding, a geração do XML com acentos, falha (caractere inválido). E este acentos são imprencindíveis no meu retorno de CEP, pois contém logradouros e nomes de cidades com acentos, atualmente, estou removendo os acentos (tipo SEO) pra não dar pau na geração e a linha de encoding no retorno.
Meu retorno XML:
https://www.ipis.com.br/sistemas/correio/cep.php?Usuario=0&CEP=59010660
Minha função que gera o retorno:
<?
Function CEP_RetornoXML($Erro = Array(), $CEP = Array(), $Consulta = Array())
{
//$RT = '<?xml version="1.0" encoding="ISO-8859-1"?>';<?
// RETORNO
header('Content-Type: application/xml; charset=ISO-8859-1');
$Retorno = CEP_RetornoXML($Erro, $CEP, $Consulta);
Exit($Retorno);
?>
Tratamento do retorno:
<?
Include('sis/classes/xmlLib.php');
$URL = 'http://192.168.0.189/correio/cep.php?CEP=59014000';
$cURL = Geral_cURL($URL);
b($cURL); // == <pre>Array cURL</pre>
if (!empty($cURL['Erro']))
{ $RT = Array('Erro' => $cURL['Erro'], 'Desc' => $cURL['Desc']);
Return $RT; }
/* AQUI, tentei transformar o retorno em arquivo, mas nao deu!
$file = 'teste.xml';
$var = fopen($file, 'a');
fwrite($var, $cURL['Retorno']);
fclose($var);$XML = new XMLToArray($cURL['Retorno'], array(), array(), false, false);
$Dados = $XML->getArray();
b($Dados); // == <pre>Array Dados</pre>
?>
b($cURL) imprime:
>
Array
(
[Erro] => 0
[Retorno] =>
0
59014000
Natal
Capital
RN
Rua
João XXIII
Mae Luiza
Natal
)
b($Dados) não imprime nada! :(
Alguém pode me ajudar? Tenho que codificar a linha de encoding? html_entites, tem algum erro no xml? Alguma luz?
Desde já, grato.
Carregando comentários...