首页HTTP 响应flush 最终输出
flush 最终输出
完整输出链路:清缓冲 → 发头 → 输出 → 钩子 → 退出
本页内容
  1. 执行步骤
  2. 注意事项

执行步骤

#步骤说明
1清缓冲区while(ob_get_level()) ob_end_clean()
2发头headers_sent() 为 false 时 sendHeader()
3输出echo $this->stream; flush();
4忽略用户断开ignore_user_abort(true)
5取消时间限制set_time_limit(0)
6触发钩子$this->__trigger("flushAfter")
7退出exit(0)
代码要点
public function flush(){
    while (ob_get_level()) ob_end_clean();
    if(!headers_sent()){
        $this->sendHeader();
    }
    echo $this->stream;
    flush();
    ignore_user_abort(true);
    set_time_limit(0);
    $this->__trigger("flushAfter");
    exit(0);
}

注意事项

flush() 会 exit(0) 终止脚本!此后代码不会执行。需要在输出后继续处理的逻辑应挂在 flushAfter 钩子上。
KuoqiPHP v1.05 · 离线静态文档 · 界面基于 KuoqiUI · 返回首页