PHP 配列から CSV ファイルをプログラムでダウンロードするにはどうすればよいですか?

DDD
リリース: 2024-11-10 13:33:02
オリジナル
849 人が閲覧しました

How to Programmatically Download CSV Files from a PHP Array?

PHP スクリプトから CSV ファイルを作成およびダウンロードする方法

概要

この記事は、CSV ファイルを作成およびダウンロードするための包括的なソリューションを提供することを目的としています。 PHP 配列からの CSV (カンマ区切り値) ファイル。初心者プログラマは、この機能の実装に支援が必要な場合があります。

CSV 行の生成

PHP 配列から CSV 行を生成するには、組み込みの fputcsv() 関数を利用できます。配列を CSV に適した形式の文字列に変換します:

$f = fopen("tmp.csv", "w");
foreach ($array as $line) {
    fputcsv($f, $line);
}
ログイン後にコピー

ダウンロード用の HTTP ヘッダー

ブラウザからファイルのダウンロードを開始するには、適切な HTTP ヘッダーを送信することが重要です。そのようなヘッダーの 1 つは次のとおりです。

header('Content-Disposition: attachment; filename="filename.csv";');
ログイン後にコピー

このヘッダーは、応答に指定されたファイル名の添付ファイルが含まれていることをブラウザーに通知します。

すべてをまとめて

CSV を結合する行生成と HTTP ヘッダーを使用して、CSV をダウンロードする関数を作成できます:

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    // Open a memory file for efficient handling without temporary files.
    $f = fopen('php://memory', 'w'); 
    // Generate CSV lines and write them to the memory file.
    foreach ($array as $line) { 
        fputcsv($f, $line, $delimiter); 
    }
    // Reset the file pointer to begin sending the file.
    fseek($f, 0);
    // Set CSV-related HTTP headers.
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="'. $filename . '";');
    // Output the generated CSV lines to the browser for download.
    fpassthru($f);
}
ログイン後にコピー

使用例

この関数を使用するには、配列と目的のファイル名を渡すだけです:

array_to_csv_download(array(
  array(1, 2, 3, 4), // First row
  array(1, 2, 3, 4) // Second row
), "numbers.csv");
ログイン後にコピー

代替出力オプション

メモリ ファイルに書き込む代わりに、ファイル記述子として php://output を使用することもでき、ファイル シークの必要がなくなります。

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="'. $filename . '";');

    // Open the php://output stream for direct output.
    $f = fopen('php://output', 'w');

    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
}   
ログイン後にコピー

以上がPHP 配列から CSV ファイルをプログラムでダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!