Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memuat turun Fail CSV secara Pemrograman daripada Tatasusunan PHP?

Bagaimana untuk Memuat turun Fail CSV secara Pemrograman daripada Tatasusunan PHP?

DDD
Lepaskan: 2024-11-10 13:33:02
asal
904 orang telah melayarinya

How to Programmatically Download CSV Files from a PHP Array?

Cara Membuat dan Memuat Turun Fail CSV daripada Skrip PHP

Gambaran Keseluruhan

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.

Menjana Talian CSV

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);
}
Salin selepas log masuk

Pengepala HTTP untuk Muat Turun

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";');
Salin selepas log masuk

Pengepala ini memberitahu penyemak imbas bahawa respons mengandungi lampiran fail dengan nama fail yang ditentukan.

Menyatukan Semuanya

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);
}
Salin selepas log masuk

Contoh Penggunaan

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");
Salin selepas log masuk

Pilihan Output Alternatif

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);
    }
}   
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan