Heim > Artikel > Backend-Entwicklung > Wie lade ich eine CSV-Datei von einem PHP-Skript herunter?
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);
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');
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); }
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');
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); } }
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!