• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:livedoorの天気を出力したいのですが)

livedoorから天気情報を取得し、連想配列に格納して出力する方法

このQ&Aのポイント
  • livedoorの天気を出力したい場合、json形式で天気情報を取得し、連想配列に格納して出力する方法を教えてください。
  • weather.phpを実行するとエラーが発生してしまい、最高気温がnullの場合でもエラーが出ないようにしたいです。
  • 自分で調べた結果、is_nullやemptyを使用してエラーチェックを行いましたが解決できませんでした。どのように解決すれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

手元の環境では、issetだけでエラー回避出来ましたが・・・ <?php $url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=410020"; $json = file_get_contents($url,true) or die("JSONの戻り値がfalse。"); $obj = json_decode($json); $weather = array(); if (isset($obj->forecasts[0]->temperature->max->celsius)) { $weather["today_max"] = $obj->forecasts[0]->temperature->max->celsius; } if (isset($obj->forecasts[2]->temperature->max->celsius)) { $weather["day_after_tomorrow_max_celsius"] = $obj->forecasts[2]->temperature->max->celsius; } if (isset($obj->forecasts[2]->temperature->min->celsius)) { $weather["day_after_tomorrow_min"] = $obj->forecasts[2]->temperature->min->celsius; } echo "今日の最高気温:"; echo isset($weather['today_max']) ? $weather['today_max'] . "<br />" : "取得不可<br />"; echo "明後日の最高気温:"; echo isset($weather['day_after_tomorrow_max_celsius']) ? $weather['day_after_tomorrow_max_celsius'] . "<br />" : "取得不可<br />"; echo "明後日の最低気温:"; echo isset($weather['day_after_tomorrow_min']) ? $weather['day_after_tomorrow_min'] . "<br />" : "取得不可<br />"; echo "<pre>"; var_dump($obj); echo "</pre>";

searuri
質問者

お礼

agunuzさん ありがとうございます。 issetで解決できました。 issetの存在を忘れておりました。 お礼が遅くなりまして申し訳ありません。

関連するQ&A