Переменная в url

Тема в разделе "PHP", создана пользователем 13zone, 2 апр 2018.

Модераторы: latteo
  1. 13zone

    13zone

    Регистр.:
    22 ноя 2008
    Сообщения:
    205
    Симпатии:
    45
    как правильно вставить переменную в урл?

    Код:
        $cityofcountry = $get_listcity->data[0]->state;
        //echo $cityofcountry; //в переменной Киев
        $a1 = "http://api.airvisual.com/v2/cities?state=".$cityofcountry."&country=Ukraine&key=мой апи ключик";
    $liststate = file_get_contents($a1);   
    $get_liststate = json_decode($liststate);
    $goroda = $get_liststete->data[0]->city;
        echo $goroda; // в переменной пусто...
     
  2. Chubazaa

    Chubazaa Писатель

    Регистр.:
    17 фев 2015
    Сообщения:
    6
    Симпатии:
    3
    Hello,

    the error is in your code "Notice: Undefined variable: get_liststete", you have defined $get_liststate and using $get_liststete with an e.

    I did a test using curl and it returned the city correctly:

    Код:
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => "http://api.airvisual.com/v2/cities?state=Kyiv&country=Ukraine&key=...",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    ));
    
    $response = curl_exec($curl);
    $decoded = json_decode($response);
    
    var_dump($decoded->data[0]->city); //Brovary
    
    It is not wrong to use file_get_contents but you have to make sure that you create a context before calling any external url, because if it fails it will break your connection or even worst it will keep loading until php force it to close.

    Код:
    $opts = array('http' =>
    array(
    'method' => 'GET',
    'timeout' => 10
    ));
    
    $context = stream_context_create($opts);
    $json = file_get_contents("http://api.airvisual.com/v2/cities?state=Kyiv&country=Ukraine&key=...", false, $context);
    $decoded = json_decode($json);
    
    var_dump($decoded->data[0]->city); //Brovary
    
     
    13zone нравится это.
  3. 13zone

    13zone

    Регистр.:
    22 ноя 2008
    Сообщения:
    205
    Симпатии:
    45
    да, вот что значит опечатался в переменной... все )) мозги поплыли, пора идти домой отдыхать.. спасибо за то что поправили, все работает, а я то и думаю.. все написал правильно, и пусто.