gpt4 book ai didi

php - 使用 for 语句 PHP 保持在线发布号码

转载 作者:行者123 更新时间:2023-11-28 10:59:42 25 4
gpt4 key购买 nike

我正在寻找在每行上显示一个数字的东西,而不仅仅是页面加载后的所有数字。例如代码是:

for($a=0;$a<=10;$a++){
echo $a;
echo '<br>';
}

输出当然是:12页面加载后一直到 10,但我想让它表明,1然后2,浏览器不加载所有内容。

我想暂停一下,看看数字增加。

最佳答案

您可以使用 flush() 强制 php 刷新其输出。 。当然,如果PHP's output buffering启用后,这只会将其刷新到输出缓冲区中。

一旦 PHP 刷新,它不能保证直接到达浏览器,PHP 刷新到 Web 服务器,Web 服务器根据 Web 服务器自身的配置将其发送到浏览器。

但是,就 PHP 而言,以下内容将起作用(至少在命令行上,或者在您的网络服务器上,如果配置正确的话):

演示.php

<?php
ob_end_flush(); // make sure output buffering is off
for($i=0;$i<10;$i++){
echo "{$i}\n";
flush();
sleep(1);
}

从命令行:

$ php demo.php

应显示 1...2...3...,中间有一秒的延迟。

编辑:我又想到了一件事。即使 Web 服务器在您从 PHP 刷新时“流式传输”您的输出,如果您的输出位于其他标记中间,用户的浏览器在收到整个响应之前可能不会呈现任何内容。

也就是说,如果您正在做一些基本的事情,我已经使用上述策略来输出长时间运行的实用程序脚本的状态。在这些情况下,我什至可能没有在输出中包含标签,但它的工作方式就像您希望的那样(至少在我当时处理的服务器上)。

这种方法对于内部工具来说可能足够好,但我永远不会依赖这种技术来处理最终用户可能看到的任何内容。

关于php - 使用 for 语句 PHP 保持在线发布号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com