我有一个导入模块,我必须逐行处理制表符分隔的txt文件。问题是该文件可能有超过250K行。我必须在MySQL数据库中进行SELECT和UPDATE或INSERT操作。这可能会使服务器工作3-4个小时。 我想把一个状态栏显示在处理中我们在哪里。我在处理文件的行时尝试更新输入,但浏览器无法真正输出它,它只是冻结。我怎样才能输出处理的状态?PHP处理制表符分隔线逐行进度/状态栏
1
A
回答
1
您必须异步执行此操作,否则从浏览器到服务器的连接将超时。
您可以在数据库中创建另一个表来保存文件处理的进度 - 您可以每处理100或1000行更新该表中的记录。
在客户端,您可以通过interogating后端并从该进度表中获取值来更新javascript中的进度条。
0
Maype一个简单的flush()将做的工作:
// ...
$done++
if (($done % 1000) == 0) {
print "$done of $total lines processed<br />";
flush();
}
// ...
如果您使用Windows的服务器,你可能有一个看的文档页面的评论,似乎有一些怪癖: http://php.net/manual/en/function.flush.php
相关问题
- 1. 在状态栏中使用分隔符
- 2. Excel VBA进度/状态栏
- 3. 高图表进度条/状态栏
- 4. 处理状态栏通知
- 5. 更新状态栏内的进度栏
- 6. 制表符分隔符不工作批处理命令
- 7. PHP上传进度状态
- 8. 正则表达式来处理一组动态分隔符
- 9. 添加行与2制表符分隔栏
- 10. PHP自行处理Win和* nix中的路径分隔符吗?
- 11. 十进制分隔符oracle
- 12. java十进制分隔符
- 13. sprintf十进制分隔符
- 14. 隐藏分隔线,并保持状态栏的颜色一样的导航栏
- 15. 使用Perl散列处理制表符分隔文件
- 16. 将xlsx转换为txt制表符分隔 - 批处理
- 17. 处理PHP中的制表符分隔文件中的双标签页
- 18. 如何在React Native中处理iOS状态栏高度变化?
- 19. 取决于方向处理状态栏高度
- 20. php:处理数组时输出状态栏(ajax/jQuery?)
- 21. 将'='分隔线上的文本文件逐行分解C++
- 22. 在制表符处分割线
- 23. c#对一个制表符分隔的文件进行排序
- 24. 制表符分隔或逗号分隔输出中的新行
- 25. 状态栏的高度?
- 26. iPhone X状态栏高度
- 27. 如何制作反映逐步形式进度的jQuery/css进度栏?
- 28. 制表符分隔符到逗号分隔符传输问题
- 29. 在Apache Pig中处理分隔符
- 30. 处理嵌套的分隔符在Perl
谢谢,听起来不错。如果我用jQuery AJAX做到这一点,它会输出它吗? – Ervin
是的......我建议您启动一个后台进程来处理大文件 –