PHP

【PHP】JSONファイルを読み込んで出力する方法

PHPでJSONファイルを読み込んで出力する方法について記述します。
各機能についてはソース内のコメント文字にて説明しております。
また、今回は動的に読み込むJSONファイルを指定できる仕組みにしているため、
共通系の処理として利用できるかと思います。

JSONファイル(サンプルデータ)

{
    "2022-01-01": "元日",
    "2022-01-10": "成人の日",
    "2022-02-11": "建国記念の日",
    "2022-02-23": "天皇誕生日",
    "2022-03-21": "春分の日",
    "2022-04-29": "昭和の日",
    "2022-05-03": "憲法記念日",
    "2022-05-04": "みどりの日",
    "2022-05-05": "こどもの日",
    "2022-07-18": "海の日",
    "2022-08-11": "山の日",
    "2022-09-19": "敬老の日",
    "2022-09-23": "秋分の日",
    "2022-10-10": "スポーツの日",
    "2022-11-03": "文化の日",
    "2022-11-23": "勤労感謝の日"
}

JSONファイルを読み込むソースコード

/**
 * JSONファイル読込み処理
 * @param file 読込み対象ファイル
 * return HTML
 */
function json($file){
    // jsonファイルを指定(直接指定する場合)
    // $file = "holiday.json";
    // JSONファイルを動的に切替えるため引数で指定

    // ファイルの内容を全て文字列に読み込む
    $json = file_get_contents($file);
    // 文字エンコーディングの変換(文字化け対策)
    $json = mb_convert_encoding($json, "UTF-8", "ASCII, JIS, UTF-8, EUC-JP, SJIS-WIN");
    // JSONデータを連想配列に変換
    $arr = json_decode($json, true);
    $html = "<div class='json_list'>";
    // 空判定
    if (!empty($arr)) {
        $html .= "<p>";
        foreach ($arr as $key => $value) {
            $html .= $key . " : " . $value . "<br />";
        }
        $html .= "</p>";
    } else {
        $html .= "<p>Nothing...</p>";
    }
    $html .= "</div>";
    echo $html;
}
  <h2>JSONファイルを読み込んで出力する方法</h2>
  <p>▼データが存在する場合</p>
  <?php $item = json("holiday.json"); ?>

  <p>▼データが存在しない場合</p>
  <?php $item = json("holiday_nodata.json"); ?>

出力結果

説明は以上となります。
この記事が誰かの助けになれば幸いです。