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

标签 php javascript

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

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

输出当然是: 1 2 页面加载后一直到 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/

相关文章:

javascript - 如何使用 JavaScript 附加类 onClick 事件?

javascript - 根据复选框是否选中来启用和禁用按钮

php - 宽度属性不适用于绝对定位的 div

javascript - 通过 AJAX 发送变量后无法获取 $_POST 值

javascript - 等待 Ajax 调用 DOM 操作完成

php - 统计数据库中最多列出 'author'行

php - php 中的 mysql_query 错误 - 无法将信息插入数据库

javascript - Jquery:选择 $(this) 所在的类

javascript - 10 × 10 数组 - 先前的数组被覆盖

javascript - 如何在 EXT-GWT 中拆分面板?