Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Muat Turun Fail CSV daripada Skrip PHP?

Bagaimana untuk Muat Turun Fail CSV daripada Skrip PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-09 12:42:02827semak imbas

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

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!

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