GZIP экстракт, чтобы получить XML, но ответ странные символы

У меня есть этот код, чтобы получить и XML из GZIP.
Я обновлю весь код.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, XML_POST_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, True);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_POSTFIELDS, XML_PAYLOAD);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:     text/xml','Connection: close'));

$result = curl_exec($ch);

if ( curl_errno($ch) ) {
$result = 'cURL ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);
log_cron('ERRO', $result, $mid, 'ACESSO AO WEBSERVICE');
} else {
$returnCode = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
switch($returnCode) {
case 200:
break;
default:
$result = 'HTTP ERROR -> ' . $returnCode;
log_cron('ERRO', $result, $mid, 'ACESSO AO WEBSERVICE');
break;
}
}

curl_close($ch);


$arquivo = getZip($result);
try {
$xml = new SimpleXMLElement($arquivo);
}catch (Exception $e) {
echo "Bad xml: ".$e->getMessage();
}


function getZip($stream) {
$fp = fopen("arquivo.gz", "w");
fwrite($fp, $stream, 2048);
fclose($fp);
sleep(2);
$zp = gzopen("arquivo.gz", "r");
$contents = gzread($zp, 10000);
gzclose($zp);
return $contents;
}

Но даже когда я извлекаю или пытаюсь прочитать от байта к байту, ответ всегда одинаков.

Кто-нибудь может мне помочь?

введите описание изображения здесь

0

Решение

curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');

должно быть

curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]