CSV出力

php出力処理、他にも使えそうなので、サンプルとして残す

/**
 * 文字列の配列の配列をCSV出力する
 *
 * この関数は、文字列の配列を複数持つ配列(2次元配列)を受け取り、
 * それをCSV形式で出力します。
 *
 * @param string $filename ファイル名
 * @param array $records 文字列を要素とする配列の配列
 */
function csv_download($filename, $records) {
    // 出力情報の設定
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename={$filename}");
    header("Content-Transfer-Encoding: binary");

    // 出力バッファを開始
    ob_start();
    // もし他の部分で余計なデータが出力されていた場合にクリアする
    ob_clean(); // ここで出力バッファをクリアする場合

    // ベースとなるデータを作成
    $buffer = "";
    foreach($records as $record) {
        $buffer.= '"' . implode('","', $record) . '"'. "\r\n";
    }

    $buffer = mb_convert_encoding($buffer, "SJIS-win", "auto");

    echo $buffer;
    // 出力バッファの内容を終了して送信
    ob_end_flush();
    exit;

}

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です