iis10 启用php实时输出
在一个比较费时的操作中,想把操作记录在浏览器上实时显示出来,用到了flush(),把缓冲中的内容发送到浏览器。但在iis里面用fastcgi模式配置的php怎么都实现不了,结果总是一起显示出来。
<?php
function flush_buffers(){
ob_end_flush();
ob_flush();
flush();
ob_start();
}
ob_start();
flush_buffers();
echo "starting...<br/>\n";
for($i = 0; $i < 5; $i++) {
print "$i<br/>\n";
flush_buffers();
sleep(2);
}
上面的代码在IIS的默认设置下是无法逐渐显示结果的。解决办法如下:
- 在iis管理页功能视图选择下方的 配置编辑器.
- 在顶部的节选择 system.webServer/handlers

- 在右边的(集合)点击编辑项。
- 选择当前的php版本.

- 在下方的属性面板中修改 responseBufferLimit的值为0
- 关闭配置编辑器并点击应用.
- 在iis管理中重新启动.

