Bagaimana untuk Muat Turun Fail CSV daripada Skrip PHP?

Patricia Arquette
Lepaskan: 2024-11-09 12:42:02
asal
860 orang telah melayarinya

How to Download a CSV File from a PHP Script?

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

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

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

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

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan