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 サイトの他の関連記事を参照してください。