Excel読み込みできるCSVファイルをダウンロードする
phpでCSVをダウンロードする場合、file put csv mb convert variables ダウンロード php 標準出力 stdout あたりのキーワードで検索して作ります。
でも毎回作るのもめんどいし、まとまって作ってあると便利なので作りました。
これで、 h_sakurai php csv でググればOKくらいになるはず。
<?php downloadCSV("ほげ.csv", array( array("ほげテーブル"), array("名前\nName","年齢\nage"), array("hoge","20"), array("ほげ","30") ) ); /** * CSVファイルダウンロード * * エクセルで読み込み可能なCSVファイルをファイルをダウンロードする形で出力します。 * 文字コードはUTF-8,EUCJP-WINからの変換になります。 * @param string $filename ファイル名 * @param array $table 2次元配列 */ function downloadCSV($filename, $table) { // 文字コード変換 mb_convert_variables("SJIS-WIN", "UTF-8,EUCJP-WIN,SJIS-WIN", $filename, $table); ob_start();// 標準出力のバッファリング開始 // 標準出力オープン $fp = fopen('php://output', 'w'); foreach($table as &$line) { // 1行分CSV出力 fputcsv($fp, $line); } // ファイルクローズ fclose($fp); // 標準出力バッファの内容取り出し $csv = ob_get_contents(); // 標準出力バッファリング終了 ob_end_clean(); // ファイルサイズ取得 $file_length = strlen($csv); // ダウンロード用のヘッダ出力 header("Content-Disposition: attachment; filename=$filename"); header("Content-Length:$file_length"); header("Content-Type: application/octet-stream"); // CSVデータ出力 echo $csv; } ?>