【发布时间】:2019-11-13 04:13:30
【问题描述】:
我有一个 while 循环来读取包含客户数据(姓名、电子邮件、网站)的 csv 文件。我用每秒回显每一行。所以我用 sleep(1) 和很多希望做了一个 while 循环,但是浏览器一直在等待,直到它完全加载。我知道,这就是 php 的工作原理,也许使用 javacript 很容易,但我真的没有关于 javascript 的胶水。甚至 flush() 技术也不起作用。也许我的主机有问题?我使用 one.com
我已经尝试了循环中的 sleep()。 - 加载直到完成 我已经尝试过刷新功能 - 相同
$handle = fopen ("csv.csv","r");
$csv = array();
while ( ($data = fgetcsv ($handle, 1000, "\t")) !== FALSE ) {
$csv[] = $data;
echo "Name=".$data[0]."<br>Email=".$data[1]."<br>Website=".$data[2];
sleep(1);
}
fclose ($handle);
【问题讨论】:
-
如果我是你,我会花时间和精力学习 Javascript(和 Ajax)。不建议在网页上使用
sleep(),因为这些调用会被阻塞,因此无法很好地扩展。最好一次性从后端获取所有数据并使用 Javascript 以您想要的方式呈现它。 -
它仅供我和我的同事使用。我们需要它的真正原因有点复杂,但这样它的功能。具有数百行的csv,每行有3个列,我需要等待1秒才能在网络浏览器中输出。如果您对此有 javascript 解决方案,请提供给我。
-
对不起。我没有完成的脚本,所以也不是正确的要求它的地方。我们很高兴帮助您解决现有代码的问题,但我们不是来为您解决的。
-
我知道。我只需要一个提示如何去做。否则,我们可以用“学习如何做”来回答 stackoverflow 中的每个问题:/ 我知道它可以在 while 循环内刷新任何内容。它只是在我的网络服务器上不起作用。也许我可以将 csv 的所有内容放在一个数组中,并让 javascript 在 1 秒延迟后显示它。这样我可能需要 javascript 部分(带有回声和延迟的循环)或更好的解决方案来在 while 循环中获得回声
-
谷歌搜索“Ajax 入门”之类的内容,然后一步一步地开始。 JS 还具有“延迟”操作的功能,使用
setTimeout()一次性,或setInterval()每隔 n 毫秒执行一些代码。
标签: php csv while-loop sleep fopen