Для вступления в общество новичков и профессионалов домен-индустрии, пожалуйста нажмите здесь ...

   
 Купля-продажа и обсуждение доменных имён
        

  
Вернуться   Форум о доменах > Дизайн и развитие проектов > Программирование
Регистрация Реноме Правила форума Справка Пользователи Социальные группы Все разделы прочитаны
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования.

Ответ
 
Опции темы
Сегодня
от 149р за .RU
Аренда сервера
2x Intel Hexa-Core Xeon E5-2420
Всего 79 евро!

с видеокартой GeForce GTX 1080 Ti
всего 99 евро!

от 149р за .РФ Реклама на DomenForum.net
Старый 31.08.2017, 21:48   #1
 
Аватар для zusicks438
 
Регистрация: 08.03.2008
Сообщений: 794
Доменные сделки: 1
Реноме: 2709
Одобрения
Спасибо (Отдано): 349
Спасибо (Получено): 152
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?

Последний раз редактировалось Richman; 31.08.2017 в 22:29. Причина: Изменение названия темы в связи с нарушением правил форума
zusicks438 вне форума   Ответить с цитированием
Старый 31.08.2017, 23:07   #2
SEO Специалист
 
Аватар для pastuhoff
 
Регистрация: 24.10.2005
Сообщений: 6,529
Доменные сделки: 40
Реноме: 5358
Одобрения
Спасибо (Отдано): 187
Спасибо (Получено): 315
Заменить 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;
}
__________________
Коллекционер доменных имен.
pastuhoff вне форума   Ответить с цитированием
Старый 02.09.2017, 19:27   #3
 
Аватар для passport
 
Регистрация: 14.04.2010
Адрес: Earth
Сообщений: 121
Доменные сделки: 1
Реноме: 255
Одобрения
Спасибо (Отдано): 4
Спасибо (Получено): 31
Сообщение от zusicks438 Посмотреть сообщение
Запросы к стороннему 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);
?>
__________________
Я написал выше.
passport вне форума   Ответить с цитированием
Ответ



Реклама

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Закладки Добавить Тема в закладки

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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