CSV-Datei via PHP generieren
Sascha
- php
0 Sascha0 Sascha Knappe0 Sascha
0 small-step0 Sascha0 Harry0 Christian Seiler
Hallo Forum!
Wie kann ich eine CSV-Datei generieren, die der User dann bei sich speichern kann?
Es ist so, dass ich in dieser Datei einen Datenbank-Dump habe und dieser der User weiterverwenden kann. Dazu soll er die CSV-Datei bei sich Speichern.
Wie kann ich das umsetzten
Vielen Dank und Grüße
Sascha
visit: http://www.radiobot-online.de.vu
visit: http://www.projekt-online.de.ms
visit: http://www.sgo.net.ms
Ich bins nochmal ;-)
die Datei soll quasi 'on the fly' generiert werden
Viele Grüße
Sascha
visit: http://www.radiobot-online.de.vu
visit: http://www.projekt-online.de.ms
visit: http://www.sgo.net.ms
Hallo Sascha,
diese Frage hatte ich gestern schon von dir gelesen. Bleibe doch bitte in deinem Thread.
Schönen Gruß aus München
die knappschaft
Hallo "die Knappschaft"
Gestern war es eine andere Problematik... heute geht es mir darum ne CSV Datei zu generieren.
Wobei ich nur wissen wollte wie sich es damit den Headern verhält..
aber dennoch danke für Deine hilfe
Hi,
Es ist so, dass ich in dieser Datei einen Datenbank-Dump habe und dieser der User weiterverwenden kann. Dazu soll er die CSV-Datei bei sich Speichern.
Du könntest das ganze so machen:
header( "Content-Type: text/plain; name=csv_dump" );
header( "Content-Transfer-Encoding: BASE64;" );
header( "Content-Disposition: attachment; filename=dump.csv" );
echo ""Spalte1";"Spalte2";"Spalte3"\n\n";
while($entry = mysql_fetch_row($result)) {
echo ""$entry[0]";"$entry[1]";"$entry[2]"\n";
}
die;
Gruß,
small-step
Hey small-step!
Vielen dank, werde mich jetzt daran machen :-)
Viele Grüße
Sascha
Holladiewaldfee,
while($entry = mysql_fetch_row($result)) {
echo ""$entry[0]";"$entry[1]";"$entry[2]"\n";
Du mußt noch darauf achten, daß Anführungszeichen im String selbst verdoppelt werden müssen. Die Anführungszeichen selbst brauchst Du nur, wenn das Trennzeichen im String vorkommt, oder Anführungszeichen oder Zeilenumbrüche.
Bei großen Datensätzen wird die Angelegenheit überigens deutlich beschleunigt, wenn Du
echo 'bla'.$variable[1].'blafoo'.$var."\n";
verwendest.
Hier (http://de.php.net/manual/en/function.fgetcsv.php) gibt's in den Benutzerkommentaren eine halbwegs vernünftige Funktion fPutCSV zum Erstellen von CSV-Dateien. Diese auf "on-the-fly" umzuschreiben sollte kein größeres Problem sein.
Ciao,
Harry
Hallo small-step,
header( "Content-Type: text/plain; name=csv_dump" );
RFC 2616 definiert keinen Parameter namens 'name' für den Content-Type-Header. Daher dürfte der Parameter nichts bewirken. (btw: darf man nicht definierte Parameter überhaupt angeben?)
Desweiteren ist der Medientyp für CSV text/comma-separated-values und nicht text/plain. So können Browser, die sich an den HTTP-Standard halten, auch angemessen auf derartige Resourcen reagieren.
Viele Grüße,
Christian