1

我有一个 100.000 行的 txt 文件,我需要阅读它才能将其中的大部分插入到我的数据库中。我想使用这个插件,因为我发现它很容易使用:

http://www.bram.us/projects/js_bramus/jsprogressbarhandler/#download

我的问题是:我用 PHP 读取了 txt 文件,但我不明白如何更新进度条!我在想这样的事情

echo '$("#progressbar").progressbar({ value: '.($k++).' });';

从 0 到 100哪里$k去了,但是,我必须把它放在哪里?

4

3 回答 3

1

我找到了这个方法:

http://spidgorny.blogspot.it/2012/02/progress-bar-for-lengthy-php-process.html

我认为这可能有助于对代码进行一些编辑。

于 2012-05-02T09:35:00.590 回答
0

您不可能混合使用 php 和 javascript:

  1. PHP 将运行并生成一个 HTML/JS 文件
  2. HTML/JS 文件将被发送到客户端
  3. 客户端将运行 JS:$("#progressbar").progressbar({ value: XX });

所以k会是静态的。

--

如果你真的想轻松地做这样的事情,你可以使用一个包含三列的中间数据库表:txt_file、位置、长度,并且经常在 PHP 脚本在 txt 文件上运行时更新这个表。

客户端,在 Javascript 中,您可以使用 jQuery 例如每 5 或 10 秒发出一次 ajax 请求,这将调用另一个 PHP 页面,而这个 PHP 页面只会从中间表返回相应的行。获得结果后,您可以更新进度条。

--

这是为您实现的最简单的解决方案,但它仍然很脏,而且 txt 文件的解析最好必须很长!

于 2012-04-20T08:07:37.423 回答
0

没有直接的方法可以实现这个东西。PHP 脚本首先执行,然后将输出发送到查看网页的客户端,这就是为什么您无法向客户端显示 PHP 脚本处理的实时状态的原因。

您将不得不使用 AJAX 和 Database 的组合:

创建一个表来跟踪文本文件的加载进度。每当用户(客户端)向页面发送请求时,请继续使用进度更新表格。使用 Session id 作为表上的索引,以便轻松跟踪每个客户端的进度。现在使用 AJAX 请求从表中获取进度,并使用进度条将其呈现给客户端。

于 2012-04-20T08:13:11.137 回答