DomenForum.net

DomenForum.net (https://domenforum.net/index.php)
-   Программирование (https://domenforum.net/forumdisplay.php?f=26)
-   -   php, json и xml (https://domenforum.net/showthread.php?t=212608)

zusicks438 31.08.2017 21:48

php, json и xml
 
Запросы к стороннему API возвращают данные в формате JSON. curl -i выводит следующее:
Цитата:

HTTP/1.1 200 OK
Date: Thu, 31 Aug 2017 17:39:14 GMT
Server: Apache/2.4.10 (Debian)
Content-Encoding: gzip
Content-Disposition: attachment;filename=Остатки_31.08.17 20:39:14.xml
Last-Modified: 2017-08-31 17:34:33.000000
Last-Modified: 2
Last-Modified: GMT
Expires: 2017-08-31 17:44:33.000000
Expires: 2
Expires: GMT
Transfer-Encoding: chunked
Content-Type: text/xml;charset=UTF-8
Дальше идут данные в формате XML (сжатые в gzip, но это как раз нормально)
Я пишу на PHP вот такой код:
PHP код:

$json file_get_contents($url);
var_dump($json); 

В итоге var_dump выводит string(122271) и данные в формате XML. Больше ничего.

А как получить заголовки, которые я вижу в curl?

pastuhoff 31.08.2017 23:07

Заменить file_get_contents($url) на нечто подобное:

function getdata($url)
{
$timeout=300;
$useragent="Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,0);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_USERAGENT,$useragent);
$data=curl_exec($ch);
curl_close($ch);
return $data;
}

passport 02.09.2017 19:27

Цитата:

Сообщение от zusicks438 (Сообщение 1435837)
Запросы к стороннему API возвращают данные в формате JSON. curl -i выводит следующее:


Я пишу на PHP вот такой код:
PHP код:

$json file_get_contents($url);
var_dump($json); 

В итоге var_dump выводит string(122271) и данные в формате XML. Больше ничего.

А как получить заголовки, которые я вижу в curl?

Можно, например, как-то так:
PHP код:

<?php
function get_contents($url) {
    
$data['json'] = file_get_contents($url);
    
$data['headers'] = $http_response_header;
    return 
$data;
}

$data get_contents($url);
var_dump($data);
?>



Текущее время: 12:33. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Техническая поддержка — DevArt.PRO. Перевод: zCarot.