我正在做一个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