Artikel ini bertujuan untuk menyediakan penyelesaian yang komprehensif untuk mencipta dan memuat turun Fail CSV (Comma-Separated Values) daripada tatasusunan PHP. Sebagai pengaturcara baru, anda mungkin memerlukan bantuan untuk melaksanakan fungsi ini.
Untuk menjana baris CSV daripada tatasusunan PHP anda, anda boleh menggunakan fungsi fputcsv() terbina dalam, yang menukar tatasusunan kepada rentetan berformat yang sesuai untuk CSV:
$f = fopen("tmp.csv", "w"); foreach ($array as $line) { fputcsv($f, $line); }
Untuk memulakan muat turun fail daripada penyemak imbas, menghantar pengepala HTTP yang sesuai adalah penting. Satu pengepala sedemikian ialah:
header('Content-Disposition: attachment; filename="filename.csv";');
Pengepala ini memberitahu penyemak imbas bahawa respons mengandungi lampiran fail dengan nama fail yang ditentukan.
Menggabungkan CSV penjanaan baris dan pengepala HTTP, anda boleh mencipta fungsi untuk memuat turun CSV:
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { // Open a memory file for efficient handling without temporary files. $f = fopen('php://memory', 'w'); // Generate CSV lines and write them to the memory file. foreach ($array as $line) { fputcsv($f, $line, $delimiter); } // Reset the file pointer to begin sending the file. fseek($f, 0); // Set CSV-related HTTP headers. header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'. $filename . '";'); // Output the generated CSV lines to the browser for download. fpassthru($f); }
Untuk menggunakan fungsi ini, hanya hantar tatasusunan anda dan nama fail yang dikehendaki:
array_to_csv_download(array( array(1, 2, 3, 4), // First row array(1, 2, 3, 4) // Second row ), "numbers.csv");
Sebagai alternatif kepada menulis pada fail memori, anda juga boleh menggunakan php://output sebagai deskriptor fail, menghapuskan keperluan untuk mencari fail:
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="'. $filename . '";'); // Open the php://output stream for direct output. $f = fopen('php://output', 'w'); foreach ($array as $line) { fputcsv($f, $line, $delimiter); } }
Atas ialah kandungan terperinci Bagaimana untuk Memuat turun Fail CSV secara Pemrograman daripada Tatasusunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!