Kombination von 2 CSV-Dateien

8

Ich versuche zwei CSV-Dateien in PHP zu kombinieren. Ich suche nach einer perfekten Methode. Hier ist mein Code bis jetzt:

%Vor%     
no_freedom 24.03.2011, 10:28
quelle

3 Antworten

20

Ich gebe Ihnen eine Lösung, die Sie verwenden können, wenn Sie große CVSs haben und nicht viel RAM Ihrer Maschine verwenden möchten (stellen Sie sich vor, dass jede CSV beispielsweise 1 GB groß ist).

%Vor%

Verwendung:

%Vor%

Lustige Tatsache:

Ich habe das nur verwendet, um 2 CSV-Dateien mit jeweils ~ 500.000 Zeilen zu erstellen. Es dauerte ungefähr 5 Sekunden und 512kb Speicher verwendet.

Logik:

Öffnen Sie jede Datei, lesen Sie eine Zeile und schreiben Sie sie in die Ausgabedatei. Ja, es kann langsamer sein, jede Zeile zu schreiben, anstatt einen ganzen Puffer zu schreiben, aber dies erlaubt die Verwendung von schweren Dateien, während der Speicher des Rechners schonend ist. Zu jedem Zeitpunkt sind Sie sicher, weil das Skript nur online liest und es dann schreibt.

Viel Spaß!

    
Bogdan Constantinescu 24.03.2011, 10:48
quelle
2

Wie wäre es ...

%Vor%

Beachten Sie, dass dies jedoch die gesamten Dateien in den PHP-Speicher lädt. Also, wenn sie groß sind, können Sie memory_limit Probleme bekommen.

    
Sander Marechal 24.03.2011 10:34
quelle
0

Wenn Sie die beiden Dateien einfach verketten möchten, können Sie dies einfach mit einem Shell-Skript tun, vorausgesetzt, Sie sind auf Unix wie os:

%Vor%     
Nick Weaver 24.03.2011 10:38
quelle

Tags und Links