#PHPを用いたCSVファイルの書き出しとダウンロード
動的にcsvを作って、それをダウンロードさせたいなと思って書きました。
本当はheaderにforce-downloadを入れて強制的にダウンロードさせた後に作ったCSVファイルを削除しようかと思っていたんですけれど、その場合、そのページに文章をうまく表示できなかったのでとりあえず、ボタンクリックでできるようにしました。
ただ、この場合、今度は作ったCSVファイルの削除をこのページ内できないという……。
今後の課題ですね。
参考サイト
PDFなどのファイルを強制的にダウンロードさせる3つ方法の比較
sample.php
<html>
<head>
<?php
$filepath = "./data.csv";
$fname = "data.csv";
//書き込むデータを2次元配列に入れる
$csvdata = array(
array('aaa', 'bbb', 'ccc'),
array('ddd', 'eee', 'fff'),
array('ggg', 'hhh', 'iii'),
array('111', '222', '333')
);
//配列からcsvファイルへの書き込み
$fp = fopen($filepath, 'w');
foreach ($csvdata as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
</head>
<body>
<?php
echo "<a href='{$filepath}' download='{$fname}'>CSVファイルのダウンロード</a>";
?>
</body>
</html>