Generieren von CSV-Dateien für Benutzer in PHP
Benutzer fordern häufig Datenextrakte im CSV-Format an. Dieser Artikel befasst sich mit dem Prozess der Erstellung von CSV-Dateien bei Bedarf und deren Bereitstellung an Benutzer über einen herunterladbaren Link.
Lösung:
So erstellen und laden Sie eine CSV-Datei mit folgendem Inhalt herunter: Daten aus einer MySQL-Datenbank, wenn ein Benutzer auf einen Link klickt:
-
Generieren Sie die CSV Daten:
- Führen Sie die MySQL-Abfrage aus, um die gewünschten Daten abzurufen.
- Organisieren Sie die Daten in einem Array von Arrays, wobei jede Zeile einen Datensatz darstellt.
-
Erstellen Sie die CSV Header:
- Verwenden Sie die Funktion header(), um den Inhaltstyp auf text/csv festzulegen und den gewünschten Dateinamen als Inhaltsdisposition anzugeben. Dieser Parameter gibt den Dateinamen an und löst die Download-Eingabeaufforderung aus.
-
Definieren Sie eine CSV-Ausgabefunktion:
- Erstellen Sie eine Funktion mit dem Namen „outputCSV()“, das ein Array von Datensätzen als Argument akzeptiert.
- Öffnen Sie innerhalb der Funktion einen Stream, in den geschrieben werden soll Ausgabe mit fopen("php://output", "wb").
- Durchlaufen Sie das Array von Datensätzen und schreiben Sie jede Zeile mit fputcsv($output, $row) in den Ausgabestream. Diese Funktion verarbeitet automatisch Trennzeichen und Einschlüsse.
- Schließen Sie den Ausgabestream mit fclose($output).
-
Rufen Sie die CSV-Ausgabefunktion auf:
- Übergeben Sie das Datensatzarray an die AusgabeCSV() Funktion.
- Die CSV-Datei wird automatisch generiert und zum Download an den Client gesendet.
Beispielcode:
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
function outputCSV($data) {
$output = fopen("php://output", "wb");
foreach ($data as $row)
fputcsv($output, $row); // here you can change delimiter/enclosure
fclose($output);
}
outputCSV(array(
array("name 1", "age 1", "city 1"),
array("name 2", "age 2", "city 2"),
array("name 3", "age 3", "city 3")
));
Nach dem Login kopieren
Wichtige Punkte:
- Die Pseudovariable php://output öffnet einen Stream, der automatisch in die HTTP-Ausgabe geschrieben wird buffer.
- fputcsv() schreibt eine Zeile mit CSV-Daten in den Stream und verwaltet Trennzeichen- und Gehäuseeinstellungen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP CSV-Dateien aus einer MySQL-Datenbank generieren und herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!