ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してデータベース データを CSV ファイルにエクスポートするにはどうすればよいですか?
PHP を使用してデータベース データを CSV にエクスポートする
データ管理の領域では、データベースから情報を抽出してエクスポートする必要が生じる場合があります。便利な形式で表示されます。希望する形式が CSV (カンマ区切り値) の場合、PHP はこのタスクに堅牢なソリューションを提供します。
CSV コンテンツの生成
配列から CSV コンテンツを作成するにはでは、次の関数を利用できます:
function array2csv(array &$array) { if (count($array) == 0) { return null; } ob_start(); $df = fopen("php://output", 'w'); fputcsv($df, array_keys(reset($array))); foreach ($array as $row) { fputcsv($df, $row); } fclose($df); return ob_get_clean(); }
この関数は、まず配列が空かどうかを確認します。そうでない場合は、出力のバッファリングを開始し、出力ストリームへのハンドルを開き、最初の配列要素のキーを含むヘッダー行を書き込み、配列を反復処理して、 fputcsv() を使用して各行を出力ストリームに書き込みます。最後に、出力ハンドルを閉じ、バッファされた CSV コンテンツを返します。
ダウンロードの開始
CSV コンテンツを取得したら、ユーザーがファイルをダウンロードできるようにすることができます。次の関数を使用します:
function download_send_headers($filename) { // disable caching $now = gmdate("D, d M Y H:i:s"); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Last-Modified: {$now} GMT"); // force download header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // disposition / encoding on response body header("Content-Disposition: attachment;filename={$filename}"); header("Content-Transfer-Encoding: binary"); }
この関数では、キャッシュ メカニズムが無効になり、ファイルは強制的に適切なヘッダーを設定してダウンロードします。 Content-Disposition ヘッダーはファイル名を指定して添付ファイルとしての性質を設定し、Content-Transfer-Encoding ヘッダーはバイナリ転送を示します。
使用例
表示するにはこれらの関数の使用方法については、次の例を検討してください。
download_send_headers("data_export_" . date("Y-m-d") . ".csv"); echo array2csv($array); die();
この例では、指定されたものでダウンロード ヘッダーを設定します。ファイル名を指定し、CSV コンテンツを出力し、ファイルを破損する可能性のある追加の出力を避けるために実行を終了します。
以上がPHP を使用してデータベース データを CSV ファイルにエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。