PHP スクリプトから CSV ファイルをダウンロードするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-09 12:42:02
オリジナル
819 人が閲覧しました

How to Download a CSV File from a PHP Script?

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

概要

データ交換や分析には、CSV (カンマ区切り) ファイルの作成とダウンロードが必要になることがよくあります。 PHP では、このタスクはいくつかの方法で実行できます。このガイドでは、初心者プログラマでもこれを実現する方法について徹底的に説明します。

CSV 文字列の作成

配列から CSV 文字列を作成するには、それぞれ要素はカンマ区切り値に変換する必要があります。これは fputcsv() 関数を使用して実現できます。

$output = fopen("php://temp", "w");
foreach ($array as $line) {
    fputcsv($output, $line);
}
fseek($output, 0);
ログイン後にコピー

HTTP ヘッダーの送信

ブラウザに CSV ファイルを表示するのではなく保存するよう求めるには、次のようにします。特定の HTTP ヘッダーを送信する必要があります:

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

CSV ファイルの生成とダウンロード

上記の手順を組み合わせると、CSV ファイルを生成およびダウンロードする関数を作成できます。 :

function downloadCsv(array $array, string $filename): void
{
    // Create the CSV string
    $output = fopen("php://temp", "w");
    foreach ($array as $line) {
        fputcsv($output, $line);
    }
    fseek($output, 0);
    
    // Send HTTP headers
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Type: text/csv');
    
    // Send the CSV file
    fpassthru($output);
}
ログイン後にコピー

この関数を使用して、次のコードで CSV ファイルをダウンロードできます:

$array = [
    ['id', 'name', 'email'],
    ['1', 'John', 'john@example.com'],
    ['2', 'Jane', 'jane@example.com']
];
downloadCsv($array, 'contacts.csv');
ログイン後にコピー

代替方法

を使用する代わりにphp://temp、出力バッファに直接書き込むことができます:

function downloadCsv2(array $array, string $filename): void
{
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Type: text/csv');
    
    $f = fopen('php://output', 'w');
    foreach ($array as $line) {
        fputcsv($f, $line);
    }
}
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート