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管理中重新启动.