Heim > Backend-Entwicklung > PHP-Tutorial > Wie lade ich CSV-Dateien programmgesteuert von einem PHP-Array herunter?

Wie lade ich CSV-Dateien programmgesteuert von einem PHP-Array herunter?

DDD
Freigeben: 2024-11-10 13:33:02
Original
902 Leute haben es durchsucht

How to Programmatically Download CSV Files from a PHP Array?

So erstellen und laden Sie eine CSV-Datei aus einem PHP-Skript herunter

Übersicht

Dieser Artikel soll eine umfassende Lösung zum Erstellen und Herunterladen einer Datei bereitstellen CSV-Datei (Comma-Separated Values) aus einem PHP-Array. Als unerfahrener Programmierer benötigen Sie möglicherweise Hilfe bei der Implementierung dieser Funktionalität.

Generieren von CSV-Zeilen

Um CSV-Zeilen aus Ihrem PHP-Array zu generieren, können Sie die integrierte Funktion fputcsv() verwenden Konvertiert Arrays in formatierte Zeichenfolgen, die für CSV geeignet sind:

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

HTTP-Header für Herunterladen

Um einen Dateidownload über den Browser zu starten, ist das Senden geeigneter HTTP-Header von entscheidender Bedeutung. Ein solcher Header ist:

header('Content-Disposition: attachment; filename="filename.csv";');
Nach dem Login kopieren

Dieser Header informiert den Browser darüber, dass die Antwort einen Dateianhang mit dem angegebenen Dateinamen enthält.

Alles zusammenfügen

Kombinieren der CSV Zeilengenerierung und HTTP-Header können Sie eine Funktion zum Herunterladen von CSVs erstellen:

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);
}
Nach dem Login kopieren

Verwendung Beispiel

Um diese Funktion zu verwenden, übergeben Sie einfach Ihr Array und den gewünschten Dateinamen:

array_to_csv_download(array(
  array(1, 2, 3, 4), // First row
  array(1, 2, 3, 4) // Second row
), "numbers.csv");
Nach dem Login kopieren

Alternative Ausgabeoption

Als Alternative zum Schreiben in eine Speicherdatei können Sie dies tun Verwenden Sie auch php://output als Dateideskriptor, sodass keine Dateisuche erforderlich ist:

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);
    }
}   
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie lade ich CSV-Dateien programmgesteuert von einem PHP-Array herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage