За последние 24 часа нас посетили 16949 программистов и 1652 робота. Сейчас ищут 946 программистов ...

Получить данные из json-запроса в php

Тема в разделе "Прочие вопросы по PHP", создана пользователем seregarem, 25 авг 2014.

  1. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    Есть ссылка, при запуске которой в браузере, выводится json:
    [{"id":12100433,"moment":1408924806,"point":0,"point_at":1408924800,"value":"2","station":27199,"stream":1,"code":7032,"unit":"m","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0},{"id":12100434,"moment":1408924806,"point":0,"point_at":1408924800,"value":"280.88","station":27199,"stream":1,"code":12101,"unit":"k","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0}]

    Как получить эти данные по ссылке http://xxx.xxx.xxx.xxx:xxxx/get?stations=27199&point_at=1408924800 в php?
    Пробую:

    Код (Text):
    1. $body = file_get_contents('http://xxx.xxx.xxx.xxx:xxxx/get?stations=27199&point_at=1408924800');
    2. $st=json_decode($body);
    3. var_dump($st);
    Пишет NULL...
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А хз, все должно бычить.
    Может адрес не тот или где очепятались?)
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    a var_dump($body) что напишет?
     
  4. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    var_dump($body) выдает какую-то хрень:

    string(1156) "‹е›лnЫ: З_E0°oIGк®{’a(јФkѓеІ5О†ЅыЎІћ\Z%‘MП‹У/ЃЈXІь3MюI)џ~Уыв%hҐFЕ|9Ї5µhрAjvT|_Nc<Э•ыїSл?еl]·…,FЕЄ.лйrQЬJ‡!ДпOU9§уGЕdyOg9PrT¬S¤˜SЏyµZ•Х]њ‡
    јЈ^ЛхУ„N^¬g3єj9щVХЫYRч
    ZWч3QФпЛzJЈ~RњoЕXРЎ МоPЉ[›ирЈш)зї>›®wЏек‘ ЮJ㬥йя˜ХяТќяpТLNnјПЃЇ‡[ZЯ†IЛ0i№p0—–:-ЛЈф
    @,{°Ю
    –„Гr–WЙ“{y‡M ™№ПсҐМDx¦ЙnZьппћљpѓwGЧ<ч˜.^ЈSq&ьi˜±4+A”t [є_gеCлP:XМЬф2і§)wЈX‹™™—ж9
    bfз,¦‹·ШхЭиb;[ѕЇћ*Іж§х›2f¦xmВz/шЅ_Ѕ!Ж–©zыsLќ&л4•Рi[Ц'YzJі%[ЗК7¶/Э‹ ‘k­УёT- И…Oxъ0qЋ4KХ9ABМzЎbҐLиXҐpф‰B)%B,ЋС'5cЊАчФ1з№ѓaЇ^2™Цµ˜–&сtв]џx:ЖҐ‹!–}ћџО!M)*№‰MGІгRъ«РN‹‹gиіЪUG\R‚©2ў\.зк‹—Д%Ґsљp鬔vIPR‚¤ ”Ћл®„Ж§ў_‡ЭI‘в-ЂрЦВЁё±-®K›nЦҐ‡,Uk$ВMИvzizА˜Бѕ§—±Ќwb-ё&H1Г?йЙ¬8ПГбУbЉ‚ђ‘qБЙM"gQy*Jц^ЉJ†¬Fъш’› ©вC8”ЗеfН‘вЅЂSWееl‘NW/ЭЯБДХToSIеUы†Џ‰«џHЎc®а”АњЎMђsЇ±8ВB±LќИс7эН–Jеї!ЅЇд$›Ѕ2§тЇ1!u§±э)лa†ь±нd#ЙEВ±А щY%yP‚ћ Y`FэlJfР”z‰fЬ<ЧBzi0NKѓ В©Н1
    wј9жљIчQІЙЯsН¤™%џqgKЮЧ ™[)ъЫd®7S™w№SжЉ1#Sјци:Т<@оzѓG‚&Sдv№aж*x2ерXЩѕМЩ> Nє­Ч<ќ·AЄш‡ЎЈ8™Ъ{4П ещщ?‚ьТ4ё>"
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну и какой же это нахер json? Пф.
     
  6. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    но результат работы http://xxx.xxx.xxx.xxx:xxxx/get?stations=27199&point_at=1408924800 выдает:
    [{"id":12100433,"moment":1408924806,"point":0,"point_at":1408924800,"value":"2","station":27199,"stream":1,"code":7032,"unit":"m","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0},{"id":12100434,"moment":1408924806,"point":0,"point_at":1408924800,"value":"280.88","station":27199,"stream":1,"code":12101,"unit":"k","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0},{"id":12100435,"moment":1408924806,"point":0,"point_at":1408924800,"value":"279.91","station":27199,"stream":1,"code":12103,"unit":"k","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0}]

    а как тогда получить можно эти данные?
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Что выдает, блин... Ты такой странный, какие то крестики показываеш.
    Либо показывай ссылку, либо дрочись сам.
     
  8. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    адрес ничего не даст - это адрес в локальной сети, в нее доступа из инета нет...
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну да, ну да.
    Когда дело доходит до-"покажи ссылку"-сразу же становится локалкой. Ну да ладно. Не хочешь показывать не надо ;)
    Но мы тебе не сможем помочь так, к сожалению.
     
  10. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А ты однако доверчивый и юмора не понимаешь, очень жаль =)
    Веб-страница недоступна
    ПИЧАЛЬ!
    А перейдя по ссылке у себя там, где-то..., у тебя нормально отображается текст, а когда начинаешь запрашивать с помощью file_get_contents выбивает иероглифы?
     
  12. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    ага, при вызове ссылки в браузере все норм отображается:
    [{"id":12100433,"moment":1408924806,"point":0,"point_at":1408924800,"value":"2","station":27199,"stream":1,"code":7032,"unit":"m","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0},{"id":12100434,"moment":1408924806,"point":0,"point_at":1408924800,"value":"280.88","station":27199,"stream":1,"code":12101,"unit":"k","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0},{"id":12100435,"moment":1408924806,"point":0,"point_at":1408924800,"value":"279.91","station":27199,"stream":1,"code":12103,"unit":"k","message_id":399087,"source":null,"packet":12100432,"created_at":1408924837,"bui":"[3 07 086 - 3 02 035 - 3 02 032 : 0 07 032 = {2m}]","bui_hash":1986257669,"qlty":0}]
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Значит кодировка дрянная.
    Посмотри какая у тебя, а какая приходит и все, а дальше проблема сама собой отвалится или поможем залатать.
     
  14. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    ну т.е. скорее всего проблема в кодировке?
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Это уже не скорее всего, а точно ;)
     
  16. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    т.е. то, что я получаю
    Код (Text):
    1. $json_file = file_get_contents($json);
    нужно переводить в другую кодировку, а потом уже
    Код (Text):
    1. $info = json_decode($json_file);
    ?
     
  17. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Агась.
    Только чувство такое, что он какой - то запакованный получается.
    Сделайте так:
    Код (PHP):
    1. $body=file_get_contents('http://xxx.xxx.xxx.xxx:xxxx/get?stations=27199&point_at=1408924800');
    2. file_put_contents('put.txt',$body); 
    3. // И заодно покажите, это еще:
    4. var_dump($http_response_header); 
    А получившийся файл, залили бы куда-то и дали ссылку.
     
  18. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    array(6) {
    [0]=>
    string(15) "HTTP/1.0 200 OK"
    [1]=>
    string(23) "Cache-Control: no-cache"
    [2]=>
    string(22) "Content-Encoding: gzip"
    [3]=>
    string(30) "Content-Type: application/json"
    [4]=>
    string(20) "Content-Length: 1156"
    [5]=>
    string(30) "Access-Control-Allow-Origin: *"
    }

    ааа, он походу заархивирован... правильно я понимаю?
     
  19. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    php.net/manual/ru/function.gzdecode.php
     
  20. seregarem

    seregarem Активный пользователь

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    С этим разобрался. Но такой нюанс: сжатие происходит, когда размер становится больше какого-то размера (непонятно какого). Как-то можно определить есть ли сжатие или нет?
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764