Hello Frank,
für die Lösung deines Problemes möchte ich Dir die Streamfunktionen ans Herz legen.
Benutze nicht die namensbasierten Funktionen (file(), file_get_contents(), usw.).
Die sind für eine vernünftige Flusskontrolle und echten konkurrierenden Betrieb meistens ungeeignet.
http://php.net/manual/en/function.stream-get-line.php in einer Schleife müsste das leisten, was Du erreichen willst und du hast dann volle Kontrolle über die Fehler-/Metadaten und kannst das Timeout auch passend einstellen, damit die Scriptlaufzeit (Max-Execution-Time) auf jedenfall länger ist.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg