2013-09-04 2 views
0

У меня есть ссылка, указывающая на файл xml.gz в Интернете, я пытаюсь вывести xml и прочитать его.чтение xml из файла gz

я пытался:

$path = '/temp_xml/test.xml'; 
$url = 'http://feeds.###########_UMXILI.xml.gz'; 
$ch = curl_init(); 
curl_setopt_array($ch, array(
CURLOPT_URL => $url 
, CURLOPT_HEADER => 0 
, CURLOPT_RETURNTRANSFER => 1 
, CURLOPT_ENCODING => 'gzip' 
)); 

ли я должен сохранять данные на временный файл на моем компьютере, чтобы расшифровать? и как?
благодаря

+0

сделал вы пробовали 'эхо curl_exec ($ ч);' выход должен быть уже декодированным - это особенность использования 'CURLOPT_ENCODING => 'gzip'' –

ответ

0

Вам не нужно, чтобы сохранить файл, вы можете передать его в gzdecode($string) и он будет возвращать несжатую строку:

$compressed = curl_exec($ch); 
curl_close($ch); 

$uncompressed = gzdecode($compressed); 
// now you can use string as xml 
$xml = simplexml_load_string($uncompressed); 
+0

hmm Я пробовал это, и я получаю: « Неустранимая ошибка: вызов неопределенной функции gzdecode() « – user2706762

+0

@ user2706762 да, вы, очевидно, используете более ранняя версия PHP, поскольку функция доступна из версии PHP 5.4 –

+0

@ user2706762 Я забыл, что вы уже используете 'CURLOPT_ ENCODING' gzip, перед этим curl должен уже декодировать строку, и вы должны иметь возможность использовать ее как xml –

Смежные вопросы