PHP CSVファイル出力

ここではPHPでのCSVファイル出力を解説しています。

サンプルソース

<?php

    $data[0]['name'] = "田中太郎";
    $data[0]['position'] = "社長";
    $data[1]['name'] = "野原ひろし";
    $data[1]['position'] = "係長";

    for ($i = 0; $i < count($data); $i++) {
        $csvFile .= $data[$i]['name'] . "," . $data[$i]['position'] . "\n";
    }

    // ファイル名
    $csvName = date("Y-m-d") . ".csv";
    // ファイルサイズ
    $fileSize = filesize($csvFile);

    // 文字コードを設定
    $csvFile = mb_convert_encoding($csvFile , "sjis-win", "utf-8");

    // Mime設定
    header("Content-Disposition: attachment; filename={$csvName}");
    header("Content-Length:{$fileSize}");
    header("Content-Type: application/octet-stream");
    echo $csvFile;
    exit();

解説

出力するデータを「,」カンマ区切りで記述します。(9行目)

改行するときは「\n」を記述します。
この場合「’」シングルクォーテーションでは改行されません。必ず「”」ダブルクォーテーションで囲むようにしてください。

文字化けしないように文字コードを設定します。(18行目)
サンプルソースはUTF-8で作成してあります。

ファイル名、ファイルサイズ、を設定して出力しています。(21~24行目)

CSVファイルに限らずファイルの出力後には必ずexit()してください。

コメントを残す

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

*