Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta dan Memuat Turun Fail CSV daripada Skrip PHP?

Bagaimana untuk Mencipta dan Memuat Turun Fail CSV daripada Skrip PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-12 20:28:02217semak imbas

How to Create and Download CSV Files from PHP Scripts?

Mencipta dan Memuat Turun Fail CSV daripada Skrip PHP

Pengenalan

Untuk meningkatkan fungsi tapak web, anda mungkin menghadapi senario di mana anda perlu mengeksport data daripada tatasusunan PHP anda ke dalam fail CSV untuk dimuat turun oleh pengguna. Walau bagaimanapun, sebagai pengaturcara baru, memahami cara melaksanakan tugas ini boleh menjadi mencabar. Artikel ini menawarkan panduan komprehensif untuk mencapai matlamat ini dengan berkesan.

Membuat Fail CSV

Untuk menjana fail CSV daripada tatasusunan PHP anda, anda boleh menggunakan bina- dalam fungsi fputcsv():

$f = fopen("tmp.csv", "w");
foreach ($array as $line) {
    fputcsv($f, $line);
}

Mengkonfigurasi HTTP Pengepala

Untuk mencetuskan dialog "Simpan sebagai" dalam penyemak imbas, anda perlu menentukan pengepala HTTP yang sesuai:

header('Content-Disposition: attachment; filename="filename.csv"');

Menggabungkan Kedua-dua Proses

Dengan menggabungkan penciptaan fail CSV dan konfigurasi pengepala HTTP, anda boleh menjana perkara berikut fungsi:

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);
}

Penggunaan

Untuk menggunakan fungsi ini, anda hanya boleh menyediakan tatasusunan PHP anda dan nama fail:

array_to_csv_download(array(
    array(1, 2, 3, 4),
    array(1, 2, 3, 4)
), "numbers.csv");

Kaedah Alternatif

Untuk prestasi yang lebih baik, anda boleh menggunakan php://output dan bukannya php://memory dan hapuskan operasi cari:

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);
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Mencipta dan Memuat Turun Fail CSV daripada Skrip PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn