我正在做一個CSV上傳,其中有35,000行內容正在進行,我試圖想到一種方法來開始解析CSV文件的行「X 」。我一直刷新頁面並保存每次最後一行,以便修復瀏覽器遇到的超時問題。現在,我只需要知道如何在我離開的那條線上啓動我的CSV文件。在線解析CSV文件「X」
while(($data = fgetcsv($handle, 0, ",")) !== false) {
if($i > 2000) { break; }
//start parsing here
$i++
}
$_SESSION['lastLine'] = $i;
$_SESSION['filepath'] = $filepath;
//resend headers
我將文件路徑保存爲會話,因爲它已上傳到臨時文件夾,我可以重新訪問它。所以我第一次上傳時,我完全滿意地欣賞了所有2000線。標題重置並重新啓動該過程,但由於$ _SESSION ['lastline']現在是2001年,代碼中斷(這很好)。我需要弄清楚的是,我怎樣才能開始我在2001年的解析並在4000年再次破解。這將持續到所有35,000行完成。
我在想設置break語句解析前,說:
if($i < $_SESSION['lastLine']) { $i++; }
if($i > $_SESSION['lastLine'] + 2000) { break; }
我的問題是,這樣做35000線CSV意味着最後的10個左右的運行,將不得不做的我++循環數千甚至在分析甚至開始之前。我四處尋找一些方法來在「X」行開始CSV文件,這將是我的首選方法,但我找不到任何東西。任何幫助都是極好的。
只是設置爲會話不僅最後一行索引,但緩衝區大小(2000),並在循環中使用它作爲行的最大值 – tijs 2012-08-10 14:48:38