Textdatei zeilenweise in Array speichern ohne "Fatal error"?

Suchfunktion

Erfahrenes Mitglied
Hi & Morgen.

Ich moechte eine Wordlist zeilenweise in ein Array einlesen:
PHP:
...
$lwfta_handle = fopen ($lwfta_wordfile, "r");
if ($lwfta_handle){
	while(!feof($lwfta_handle)){
		$this->wordarray[] = fgets($lwfta_handle);
	}
	fclose($lwfta_handle);
}
...

Problem:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 12 bytes) in Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 12 bytes) in C:\..\..\index.php on line 53 on line 53
(Zeile 53 ist folgende:
PHP:
$this->wordarray[] = fgets($lwfta_handle);


Ich lade wie gesagt eine Wordlist-Textdatei, wobei jede Zeile einzeln in's Array geschrieben wird. Das wiederum laesst bei vielen Zeilen (und es sind seeeeehr viele) den Speicher voll laufen.

Wie kann ich den Fehler debuggen?

mfg
Suche
 
Ich habe auch einfach mal folgendes ausprobiert:
PHP:
$this->wordarray[] = file($lwfta_wordfile);
Allerdings gibt es wieder den Memory-Fehler.
(Den Speicher kann ich leider nicht erhoehen :-( )
 
Ist es wirklich nötig die komplette Datei zu laden?

Ansonsten würde ich sagen du musst mit dem fgets arbeiten, 100 zeilen einlesen, die verarbeiten, sie per unset() wieder aus dem speicher werfen und die nächsten 100 einlesen. Es liegt ja scheinbar daran das die Datei die du lädst zu groß ist. Dateien > 16 MB zu bearbeiten sollte man generell solang es nicht anderst geht, sequentiell verarbeiten.
 
Zurück