title: PHP Using fgetcsv on a huge csv file
body: <p>Using <code>fgetcsv</code>, can I somehow do <strong>a destructive</strong> read where rows I've read and processed would be discarded so if I don't make it through the whole file in the first pass, I can come back and pick up where I left off before <code>the script timed out</code>?</p>
  
  <p><strong>Additional Details:</strong></p>
  
  <p>I'm getting a daily product feed from a vendor that comes across as a 200mb .gz file.  When I unpack the file, it turns into a 1.5gb .csv with nearly 500,000 rows and 20 - 25 fields.  I need to read this information into a MySQL db, ideally with PHP so I can schedule a CRON to run the script at my web hosting provider every day.</p>
  
  <p>I have a hard timeout on the server set to 180 seconds by the hosting provider, and max memory utilization limit of 128mb for any single script.  These limits cannot be changed by me.</p>
  
  <p>My idea was to grab the information from the .csv using the fgetcsv function, but I'm expecting to have to take multiple passes at the file because of the 3 minute timeout, I was thinking it would be nice to whittle away at the file as I process it so I wouldn't need to spend cycles skipping over rows that were already processed in a previous pass.</p>