如何使用 sleep() 在 while 循环中回显某些内容?

How to echo something in a while loop with sleep()?

我有一个 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);

您可以同时使用 php 和 javascript 来执行此操作。

第 1 步:Javascript 将对 php 进行一次 ajax 调用,将 csv 数据转换为 json.

的形式

第 2 步:PHP 将读取 csv 文件,将数据存储到数组中并将 return json 编码的数据返回 javascript。

第 3 步:使用 setInterval 函数遍历 javascript 中的后端数据,如下所示:

var data = /* json data from ajax call */;

var i=0, html='';
var loop = setInterval(function(){
    // Perform the operation here, which will print some data at interval of 1 second
    if(i==data.length) {
        clearInterval(loop);
    }
}, 1000);