PHPでフォームに入力された内容をjsonファイルに書き込み

前回の応用

フォームを用意

<form action="" method="post">
  <p>name: <input type="text" name="data[name]" id="name" value=""></p>
  <p>color: <input type="text" name="data[like]" id="color" value=""></p>
  <p><button type="submit" name="submit">送信</button></p>
</form>

ファイルの読み込み

$json_filename = "./data.json";
$json_file = file_get_contents($json_filename);
function print_json($json_file) {
  header('Content-Type: application/json; charset=utf-8');
  $json_file = mb_convert_encoding($json_file, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
}
//var_dump(json_decode($json_file, true));

フォーム送信時の処理

//フォームが送信されたらやる処理
if(isset($_POST['submit'])) {

  $data = $_POST['data']; //データを配列で取得
  //var_dump($data);
  
  //jsonファイルに追加、書き込み
  $array = json_decode($json_file, true);
  $array[] = $data;
  //var_dump($array);
  file_put_contents($json_filename, json_encode($array, JSON_UNESCAPED_UNICODE), LOCK_EX);

}