Hallo,
ich bräuchte mal professionelle Hilfe.
Ich muss eine Datei zeilenweise einlesen.
Problem ist, dass die Datei ziemlich gross ist, ca 10 MB. ( Textdatei )
Deshalb fällt die Methode per file() flach.
Irgendwann ist die Datei für den Hauptspeicher zu groß.
Gibt es eine möglichkeit zu sagen,
dass ich diese Datei ggf. bis zum Ende einlese ( aber Zeilenweise )?
Habe mir ungefähr sowas gedacht:
$fp = fopen("datei.txt", "r");
while ( !feof($fp) )
{
#lies nur eine zeile bis zum zeilenende ein
#zeilen sind durch \r\n getrennt, so das sicher gestellt ist,
#das jede Zeile da anfängt, wie es vorgesehen ist.
if ( .. ) # mein abbruch bedinung; die bekomm ich aber hin
}
Mit fgets() funktioniert es nicht so einfach, da ich nicht genau weis, wieviel Bytes eine komplette Zeile hat ( bis die nächste kommt ). Dies wäre auch noch eine Lösung, denn so könnte ich dem Script direkt sagen, dass er sich alle Zeichen bis zum Ende holen soll, und mein Problem wäre gegessen. ;)
Hoffe mir kann da jmd einen Ansatz geben.
Mit freundlichen Grüßen
Frank ;)