PHP Mit fgetcsv auf eine riesige CSV-Datei

Verwendenfgetcsvkann ich irgendwie macheneine destruktive Lesen Sie, wo die Zeilen, die ich gelesen und verarbeitet habe, verworfen werden. Wenn ich es also nicht im ersten Durchgang durch die gesamte Datei schaffe, kann ich zurückkehren und dort weitermachen, wo ich vorher aufgehört habethe script timed out?

Weitere Details:

Ich erhalte einen täglichen Produkt-Feed von einem Anbieter, der als 200-MB-GZ-Datei vorliegt. Wenn ich die Datei entpacke, wird sie zu einer 1,5-GB-CSV-Datei mit fast 500.000 Zeilen und 20 bis 25 Feldern. Ich muss diese Informationen in eine MySQL-Datenbank einlesen, idealerweise mit PHP, damit ich einen CRON einplanen kann, der das Skript täglich bei meinem Webhosting-Anbieter ausführt.

Ich habe ein hartes Timeout auf dem Server, das vom Hosting-Anbieter auf 180 Sekunden festgelegt wurde, und eine maximale Speicherauslastung von 128 MB für ein einzelnes Skript. Diese Grenzen können von mir nicht geändert werden.

Meine Idee war es, die Informationen mit der Funktion fgetcsv aus der CSV-Datei abzurufen, aber ich erwarte, dass ich aufgrund des Timeouts von 3 Minuten mehrere Durchgänge für die Datei ausführen muss. Ich dachte, es wäre schön, die Datei wegzuputzen Wenn ich es verarbeite, müsste ich keine Zyklen damit verbringen, Zeilen zu überspringen, die bereits in einem vorherigen Durchgang verarbeitet wurden.