| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | Der Pate sagt: "Daaaanke daaaanke meine lieeeben Freuuunde" (Wie stellt man diese nette Stimme geeignet dar?) Ausgehend von den Daten, die in der Datei gespeichert werden, würde ich mal annehmen, dass CSV sehr einfach möglich ware. Bis auf den letzten Wert passt alles recht gut in eine einzige Tabelle. Als allererste Schätzung aus dem Gedächtnis würde ich mal vermuten, dass ich aus einer 2MB XML-Datei 400kB CSV erhalten würde. (Ansehen kann ich mir das erste wieder heute Abend) Damit würde ich auch bei deutlich größeren Dateien noch nicht an ein Speicherlimit stoßen. Nur bei der Konvertierung muss natürlich die XML-Datei bzw. die ausgelesenen Werte in den Speicher passen. Kann ich die CSV-Datei eigentlich zeilenweise lesen (auch aus der Mitte), ohne das ganze Ding in den Speicher zu klatschen? Ich hab hier beim Mitlesen gelegentlich mal von Funktionen/Paketen für CSV-Dateien gelesen, aber noch keine verwendet.
__________________ ********************************** Nein, ich bin nicht die Signatur. Ich putze hier nur. ********************************** |
| |
| | ||
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Zitat:
Edit: nein das offset ist ja die Anzahl Bytes, die du nicht kennst. Abgesehen davon muss die Datei ja trotzdem bis zu dieser Stelle durchsucht werden. Zumindest aber muss der Rest noch nicht ausgelesen werden! Schonmal etwas Du könntest die Datei aber splitten. | |
| |
| | |
| Erfahrener Benutzer | Mir würde es schon reichen, nicht die anfangs gelesenen Zeilen weiterhin im Speicher behalten zu müssen. Der Rest der Datei wird natürlich auch nicht gelesen. Mit file() hab ich ja den ganzen Berg auf einmal im Speicher. ~90-95% davon sind Verschwendung. Damit könnte ich aber sofort die gewünschte Zeile rauspicken... Insegesamt gefällt mir die Vorstellung, eine CSV-Datei zeilenweise zu lesen deutlich besser, als eine wesentlich größere XML-Datei jedesmal komplett zu parsen. Auch wenn ich in der CSV-Datei im Endeffekt natürlich die Daten am Anfang sehr oft lesen muss. Es geht aber zumindest erheblich schneller. Jetzt muss ich natürlich erst noch ein geeignetes Trennzeichen suchen, das in den Daten nicht vorkommen darf....
__________________ ********************************** Nein, ich bin nicht die Signatur. Ich putze hier nur. ********************************** |
| |
| | |||
| Erfahrener Benutzer Registriert seit: 13.11.2005
Beiträge: 2.583
![]() | Zitat:
Zitat:
| ||
| |
| | |
| Erfahrener Benutzer | Ja, PHP hat schon hübsche Funktionen. Wie gesagt, habe ich mit den CSV-Funktionen noch nichts gemacht. Und die Datei müsste ich ja auch erstmal im gewünschten Format erzeugen. Nicht überall bedeutet CSV ja, dass da Anführungszeichen rum sind, sondern manchmal eben nur, dass die Werte durch ein Komma oder anderes Trennzeichen abgetrennt sind. Allerdings sieht es aus, als würde sich die ganze Sache so ziemlich erübrigen. Wider Erwarten ist es tatsächlich auf dem Server möglich, die Ausführungszeit beliebig zu erhöhen. Naja, mir kann's nur recht sein. Jetzt muss ich nur noch aufpassen, ob ich an die Speichergröße stoße. Aus einer 4MB XML-Datei wird eine memory_usage von rund 27MB. Und das ist noch nicht die Obergrenze. Aber zum Glück geht sogar ein Vergrößern von memory_limit() auf gut 100M. Das gibt noch etwas Sicherheit. Sollte ich wirklich an das Limit stoßen und es nicht vergrößern können, dann muss ich wohl zuerst auf dem PC die Daten umwandeln. Darauf kann ich ganz gut verzichten. Und momentan ist das ja auch nicht relevant. Es kann soooo einfach sein ![]() Aber dennoch danke für die Tipps.
__________________ ********************************** Nein, ich bin nicht die Signatur. Ich putze hier nur. ********************************** |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| csv datei splitten |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.