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

Susan Sarandon
リリース: 2024-11-12 20:28:02
オリジナル
227 人が閲覧しました

How to Create and Download CSV Files from PHP Scripts?

PHP スクリプトからの CSV ファイルの作成とダウンロード

はじめに

Web サイトの機能を強化するために、次のようなシナリオが発生する場合があります。ユーザーがダウンロードできるように、PHP 配列から CSV ファイルにデータをエクスポートする必要があります。ただし、初心者プログラマにとって、このタスクの実行方法を理解するのは難しい場合があります。この記事では、この目標を効果的に達成するための包括的なガイドを提供します。

CSV ファイルの作成

PHP 配列から CSV ファイルを生成するには、組み込みのfputcsv() 関数内:

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

HTTP の構成ヘッダー

ブラウザで「名前を付けて保存」ダイアログをトリガーするには、適切な HTTP ヘッダーを指定する必要があります:

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

両方のプロセスの結合

CSVファイルの作成とHTTPヘッダーの設定を組み合わせることで、以下のような内容を生成できます。 function:

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    // Open file in memory
    $f = fopen('php://memory', 'w');
    
    // Generate CSV data
    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
    
    // Set headers
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    
    // Output file
    fpassthru($f);
}
ログイン後にコピー

使用法

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

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

代替方法

パフォーマンスを向上させるために、次の方法を使用できます。 php://memory の代わりに php://output を使用し、シーク操作を排除します:

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    
    // Open output stream
    $f = fopen('php://output', 'w');
    
    // Generate CSV data
    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
}
ログイン後にコピー

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

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