Php 为什么flush()不在for循环中工作?(菲律宾)
我想在Php 为什么flush()不在for循环中工作?(菲律宾),php,flush,Php,Flush,我想在for loop中使用flush()函数,在每个循环后回显内容 我的代码是: <?php if (ob_get_level() == 0) ob_start(); for ($i = 0; $i<10; $i++){ echo "<br> Line".$i." to show."; ob_flush(); flush(); sleep(2); } echo "<br>Done."; ob
for loop
中使用flush()
函数,在每个循环后回显内容我的代码是:
<?php
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<10; $i++){
echo "<br> Line".$i." to show.";
ob_flush();
flush();
sleep(2);
}
echo "<br>Done.";
ob_end_flush();
?>
此代码适用于本地主机和另一台主机(),但不适用于我的主主机(+)我怎样才能解决这个问题?我使用chrome,在你的第二台服务器前面有一个»代理。它会干扰脚本的计时。在返回响应时,通常不应该依赖于时间,因为可能会有代理服务器。您可能需要使用某种类型的或
$nc shoma.info 80
GET/test/1.php HTTP/1.1
主持人:shoma.info
连接:关闭
HTTP/1.1200ok
服务器:Apache
X-Powered-By:PHP/5.3.28
改变:接受编码
内容类型:text/html
内容长度:209
接受范围:字节
日期:2014年3月22日星期六19:18:40 GMT
X-清漆:972965439
年龄:0
Via:1.1清漆尝试在以下位置设置:
ini_set('implicit_flush', true);
PHP配置中存在问题
-是PHP配置文件PHP.ini中的参数。它为数据启用输出缓冲
在PHP配置中,它具有“无值””。因此,只需设置输出缓冲参数“开启”。或者,如果希望在此指令中设置缓冲数据集字节数的限制(例如“4096”) 谢谢@escitalopram我怎么能禁用它?你不能在PHP脚本中禁用它。这是一个服务器配置问题,甚至是一个网络架构问题。可能最好使用AJAX或WebSocket,而不是尝试以这种方式修复它。我将标题添加到中,将“disablevcache”“true”
添加到中。htaccess
但不起作用。我会在«上尝试你的建议为什么»?缓冲不应该延迟响应的发送吗?您重新启动了web服务器吗?不在主机服务器中。但是代码在本地主机中正常工作,并且处于打开状态
或处于关闭状态
,用于输出缓冲
(我重新启动了本地主机。)
ini_set('implicit_flush', true);