Как я могу распечатать ошибку, если api не найден во внешней базе данных? - PullRequest
0 голосов
/ 27 октября 2018

Я хочу показать div с надписью «Город не найден», если город отсутствует во внешней базе данных.

Как это возможно?

function curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
} 

if (isset($_GET['q'])) {
    $urlContents = curl("http://api.openweathermap.org/data/2.5/weather?q=".$_GET['q']."&type=accurate&units=metric&appid=4802fab0dfe2bf3e1f47e0882a5e93de"); // pre tahanie udajov potrebujeme vlastne app id ktore nam vygeneruje po registracii na stranke https://openweathermap.org/api

    $city = $_GET['q'];

    $weatherArray = json_decode($urlContents, true);

    $weather = $weatherArray['weather'][0]['description'];

    $temp = $weatherArray['main']['temp']; 

    $icon = $weatherArray['weather'][0]['icon'];

    $logo = "<img src='http://openweathermap.org/img/w/".$icon.".png'>";
}

1 Ответ

0 голосов
/ 27 октября 2018

Вы должны получить ответ

{"cod":"404","message":"city not found"}

от API, если он не находит город в вашем запросе, чтобы вы могли обработать ответ что-то вроде ...

$weatherArray = json_decode($urlContents, true);
if ( isset($weatherArray['cod']) && $weatherArray['cod'] == "404" ) {
    $message = "No city found";
}
else    {
    // Process weather data
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...