Hello,
ertappt.
Bis ca. 140.000kByte Dateigröße kann man die Datei gut in ein assoziatives Array einlesen und in ein indiziertes sogar bis zu 200.000kByte.
Sollte natürlich heißen 140kByte und 200kByte sodass es dann zu einem Speicherbedarf von möglichst nicht mehr als 1MByte für das Array führt. Das ist für PHP kein Problem. Was soll da jenseits von Gut und Böse sein?
das meinst Du hoffentlich nicht ernst, oder? Selbst wenn Du "Byte" statt "kByte" geschrieben hättest, wären solche Größen jenseits von Gut und Böse.
Alternativ kann man eine CSV-Datei natürlich auf die klassische Art abarbeiten, also Zeile für Zeile,
Was genau das ist, was man beim kompletten Einlesen auch tut - mit allen Zeilen, statt nur mit denen, die man braucht, bis das Ergebnis gefunden wurde.
Aber Zeile für Zeile nacheinander. Über die Buffer-Mechanismen von PHP hatte ich ja nun neulich erst meinen Disput. Das Buffering für die Datei ändert aber nichts an der Tatsache, dass bei zeilenweiser Abarbeitung immer nur eine Zeile (zusätzlich) im Speicherbreich des Scriptes gehalten werden muss für die Auswertung und bei vollständigem Einlesen eben alle Zeilen gleichzeitig.
Irgendwann könnte dann der beliebte out of memory error kommen, gegen den man ab 4.3.2 Version was tun kann. http://de.php.net/manual/de/function.memory-get-usage.php
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau