使用for语句PHP保持在线发布数字
Keep posting number on line with for statements PHP
我正在寻找显示每行数字的东西,而不仅仅是页面加载后的所有数字。示例代码为:
for($a=0;$a<=10;$a++){
echo $a;
echo '<br>';
}
输出当然是:12页面加载后一直到10,但我想把它展示出来1然后2,不用浏览器加载所有内容。
我想暂停一下,看数字增加
你可以使用flush()强制php刷新它的输出。当然,如果PHP的输出缓冲是启用的,这只会将它刷新到输出缓冲区中。
一旦PHP刷新,它不能保证直接进入浏览器,PHP刷新到web服务器,根据web服务器自己的配置将其发送到浏览器。
然而,就PHP而言,以下将工作(至少在命令行上,或者在您的web服务器上,如果它配置正确):
demo.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脚本,而是一个用javascript完成相同功能的页面。这使您可以更好地控制客户端浏览器上发生的事情。有了输出缓冲和其他东西,就无法保证浏览器会按照您想要的方式呈现它,而只是用PHP控制输出。
<?php ?>
<html>
<head>
<title>
The Counting Page
</title>
<script type="text/javascript">
var oldbody;
function countTo(a,b)
{
if(oldbody == null)
{
oldbody = document.body.innerHTML;
document.body.innerHTML = '';
}
if(a <= b)
{
elem = document.createElement("div");
elem.innerHTML = a;
document.body.appendChild(elem);
a++;
setTimeout('countTo(' + a + ',' + b + ')',1000);
}
else
{
document.body.innerHTML = oldbody;
}
}
</script>
<head>
<body onload="countTo(1,10)">
Here is the body text.
</body>
</html>
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 如果元素's的ID以数字开头
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript排序字符串或数字
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 将数字四舍五入到小数点后两位
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 正则表达式与数字中的第二个点匹配
- 如何防止数字使用数字1“E”数字2
- 输入文本将值转换为整数/数字/数字进行比较