Wie lade ich eine CSV-Datei von einem PHP-Skript herunter?

Patricia Arquette
Freigeben: 2024-11-09 12:42:02
Original
859 Leute haben es durchsucht

How to Download a CSV File from a PHP Script?

So generieren und laden Sie CSV-Dateien aus PHP-Skripten herunter: Eine umfassende Anleitung

Einführung

Für den Datenaustausch und die Datenanalyse ist häufig das Erstellen und Herunterladen von CSV-Dateien (Comma-Separated Values) erforderlich. In PHP kann diese Aufgabe durch verschiedene Methoden erledigt werden. Dieser Leitfaden bietet eine ausführliche Anleitung, wie dies auch für unerfahrene Programmierer zu erreichen ist.

Erstellen des CSV-Strings

So erstellen Sie jeweils einen CSV-String aus einem Array Das Element muss in einen durch Kommas getrennten Wert umgewandelt werden. Dies kann mit der Funktion fputcsv() erreicht werden:

$output = fopen("php://temp", "w");
foreach ($array as $line) {
    fputcsv($output, $line);
}
fseek($output, 0);
Nach dem Login kopieren

Senden von HTTP-Headern

Um den Browser aufzufordern, die CSV-Datei zu speichern, anstatt sie anzuzeigen, haben wir Sie müssen bestimmte HTTP-Header senden:

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

Generieren und Herunterladen der CSV-Datei

Durch die Kombination der oben genannten Schritte können wir eine Funktion zum Generieren und Herunterladen von CSV-Dateien erstellen :

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

Sie können diese Funktion verwenden, um CSV-Dateien mit dem folgenden Code herunterzuladen:

$array = [
    ['id', 'name', 'email'],
    ['1', 'John', 'john@example.com'],
    ['2', 'Jane', 'jane@example.com']
];
downloadCsv($array, 'contacts.csv');
Nach dem Login kopieren

Alternative Methode

Anstelle von php://temp, Sie können direkt in den Ausgabepuffer schreiben:

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

Das obige ist der detaillierte Inhalt vonWie lade ich eine CSV-Datei von einem PHP-Skript 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage