Cara Menjana dan Memuat Turun Fail CSV daripada Skrip PHP: Panduan Komprehensif
Pengenalan
Mencipta dan memuat turun fail CSV (Comma-Separated Values) selalunya diperlukan untuk pertukaran data dan analisis. Dalam PHP, tugas ini boleh dicapai melalui beberapa kaedah. Panduan ini akan memberikan panduan menyeluruh tentang cara mencapai ini, walaupun untuk pengaturcara baru.
Membuat Rentetan CSV
Untuk mencipta rentetan CSV daripada tatasusunan, setiap satu elemen mesti ditukar kepada nilai dipisahkan koma. Ini boleh dicapai menggunakan fungsi fputcsv():
$output = fopen("php://temp", "w"); foreach ($array as $line) { fputcsv($output, $line); } fseek($output, 0);
Menghantar Pengepala HTTP
Untuk menggesa penyemak imbas menyimpan fail CSV dan bukannya memaparkannya, kami perlu menghantar pengepala HTTP tertentu:
header('Content-Disposition: attachment; filename="filename.csv"'); header('Content-Type: text/csv');
Menjana dan Memuat Turun CSV Fail
Menggabungkan langkah di atas, kami boleh mencipta fungsi untuk menjana dan memuat turun fail 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); }
Anda boleh menggunakan fungsi ini untuk memuat turun fail CSV dengan kod berikut:
$array = [ ['id', 'name', 'email'], ['1', 'John', 'john@example.com'], ['2', 'Jane', 'jane@example.com'] ]; downloadCsv($array, 'contacts.csv');
Kaedah Alternatif
Daripada menggunakan php://temp, anda boleh terus menulis ke penimbal output:
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); } }
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail CSV daripada Skrip PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!