phpをつかって、指定したファイル名で自動的にサーバーにCSVデータを生成する方法をメモします。
要件
- GETで取得したクエリの名前をCSV名にする
- 登録日とクエリ名を登録する
です。
ディレクトリ
実行ファイルと同じディレクトリにCSVフォルダを設置し、その中にCSVを生成します。
プログラム
GETで取得したクエリから生成します。
https://sample.com/file/index.php?id_num=12345
この場合12345がファイル名になり、CSVに書き込む情報となります。
<?php $id_num = $_GET['id_num'] ; $date = date('Ymdhi'); $file_path=""; $file_dir="csv/"; $file_name=$id_num.".csv"; $data_file = "csv/".$id_num.".csv"; if(false == is_file("$file_path$file_dir$file_name")){ $file_exist = "1"; } $fp = fopen("$file_path$file_dir$file_name",'a'); if($file_exist){ $data_head = "登録日,クエリ番号,\n"; fwrite($fp,$data_head); } $data = "$date,$id_num,\n"; fwrite($fp,$data); fclose($fp); //リダイレクト header("location:end.php"); exit(); ?>
生成するCSVデータのディレクトリを設定します。
$file_path=""; $file_dir="csv/";
CSV名をクエリに設定します。
$file_name=$id_num.".csv"; $data_file = "csv/".$id_num.".csv";
CSVファイルを生成します。
$fp = fopen("$file_path$file_dir$file_name",'a');
ヘッダと書き込む情報を設定します。
$data_head = "登録日,クエリ番号,\n"; fwrite($fp,$data_head); $data = "$date,$id_num_full,\n"; fwrite($fp,$data);
最後にend.phpにリダイレクトします。
header("location:end.php"); exit();
これで以下が生成されます。
csv/12345.csv
中身は
登録日,クエリ番号, 202204201100,12345,
となります。
フォームで取得した情報をもとにユニークなCSVファイル生成などに使用できますね。その他色々用途があるので、またの機会にメモします。