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"); ?>
出力結果
説明は以上となります。
この記事が誰かの助けになれば幸いです。