我正试图在我的WAMP服务器上实现一个简单的while循环,方法是让一个字符串迭代一定的次数。但是,尽管在WAMP PHP设置中关闭了输出缓冲,但整个输出一次都会发生。
版本1
$i = 0;
while ($i < 5)
{
print ("This is an example of a while loop.<br/>");
flush();
sleep(1);
$i++;
}版本2
$i = 0;
while ($i < 5)
{
print ("This is an example of a while loop.<br/>");
ob_start();
ob_flush();
flush();
sleep(1);
$i++;
}这两个版本都没有按照我想要的方式输出字符串,即以一秒的间隔一次输出一个字符串。任何帮助都是非常感谢的。
发布于 2012-12-15 21:49:55
我一直对WAMP和flush有问题,最终得出的结论是,它在WAMP中完全失效了。似乎无论我有什么服务器设置,WAMP的打包方式都有一些问题,就是不能工作。
让它工作的唯一方法是使用XAMPP,或者安装和配置您自己的服务器。
发布于 2013-10-09 05:22:22
我遇到了这个问题,并能够通过合并以下代码来解决它。
// Necessary Settings and stuff for output buffering to work right
apache_setenv('no-gzip', 1);
ini_set('zlib.output_compression', 0);
ini_set('implicit_flush', 1);
ini_set('output_buffering', "off");
// Start a new output buffer and send some blank data to trick browsers
ob_start();
echo str_repeat(" ", 4096);
for ($i=0; $i < 10; $i++) {
echo "<div>Echo Something...</div>\n";
// Call both ob_flush and flush functions
ob_flush();
flush();
}发布于 2015-06-24 20:51:27
适用于那些无法使用Justin的变通方法的人。已在wamp x64上测试。
// Necessary Settings and stuff for output buffering to work right
apache_setenv('no-gzip', 1);
ini_set('zlib.output_compression', 0);
ini_set('implicit_flush', 1);
ini_set('output_buffering', "off");
// Start a new output buffer and send some blank data to trick browsers
ob_start();
echo str_repeat(" ", 4096);
ob_end_flush(); //addition
ob_flush();
flush();
for ($i=0; $i < 10; $i++) {
ob_start(); //addition
echo "<div>Echo Something...</div>\n";
ob_end_flush(); //addition
ob_flush();
flush();
}https://stackoverflow.com/questions/10344279
复制相似问题