iis10 启用php实时输出

作者: zengde 分类: 笔记 发布时间: 2019-07-08 05:37

在一个比较费时的操作中,想把操作记录在浏览器上实时显示出来,用到了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的默认设置下是无法逐渐显示结果的。解决办法如下:

  1. 在iis管理页功能视图选择下方的 配置编辑器.
  2. 在顶部的节选择 system.webServer/handlers
  3. 在右边的(集合)点击编辑项。
  4. 选择当前的php版本.
  5. 在下方的属性面板中修改 responseBufferLimit的值为0
  6. 关闭配置编辑器并点击应用.
  7. 在iis管理中重新启动.