Ich versuche zwei CSV-Dateien in PHP zu kombinieren. Ich suche nach einer perfekten Methode. Hier ist mein Code bis jetzt:
%Vor%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ß!
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.
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%Tags und Links php