За последние 24 часа нас посетили 23025 программистов и 1259 роботов. Сейчас ищут 725 программистов ...

Как получить json

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 12 окт 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Вот когда пытаюсь вот так вот получить json выдает ошибку
    Warning: file_get_contents(http://maps.googleapis.com/maps/api/geocode/json??key=***&address=запорожье украина &sensor=false&language=ru): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /home/cpinua/shinomontaj/wp-content/themes/tech-literacy/front-page.php on line 107

    PHP:
    1. echo file_get_contents('http://maps.googleapis.com/maps/api/geocode/json??key=***&address=запорожье украина &sensor=false&language=ru');
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    говорит, что ошибка в запросе. Ссылку вставь в адресную строку браузера и посмотри что будет.
    cURL лучше для таких целей юзать.
     
  3. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    когда по ссылке перехожу то все норм.
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    наверное пробелы в ссылке мешают. Браузер их кодирует автоматом.
    замени пробелы на %20. Если не поможет, то пиши.
     
  5. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Да спасибо помогло
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Вот правильный инструмент.
    PHP:
    1. $curl = curl_init('http://maps.googleapis.com/maps/api/geocode/json??key=***&address=запорожье%20украина%20&sensor=false&language=ru');
    2. curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    3. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    4. $json = curl_exec($curl); // сохранен json
    5. curl_close($curl);
    Засунь в функцию и положи себе куда нить.
     
  7. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    не просто замени, а кодируй строку перед отправкой.
    PHP:
    1. $add='запорожье украина';
    2. $url="http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($add);
    3. $json = file_get_contents($url);
     
    TeslaFeo нравится это.