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

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

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

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'>";
}

Ну а можно ли поделиться ответом, когда в урл кладете "мусорный" город? пожалуйста var_export($weatherArray); для нас.

mickmackusa 27.10.2018 15:30

он уже работает, это был какой-то неопределенный индекс

matus88811 27.10.2018 17:11
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
97
1

Ответы 1

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

{"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
}

спасибо, все работает :) $ weatherArray = json_decode ($ urlContents, true); if (isset ($ weatherArray ['cod']) && $ weatherArray ['cod'] == "404") {заголовок ("Местоположение: notfound.php"); выход; } else {// данные процесса}

matus88811 27.10.2018 17:07

Если это помогло, пометьте его как ответ - meta.stackexchange.com/questions/5234/…

Nigel Ren 27.10.2018 17:09

Другие вопросы по теме