如果他们支持,我会通过gzip向浏览器发送内容(对于css / js),目前我只是使用:
stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== False
但是,如果之前有一些输出(即php错误/警告),这会破坏gzip输出,浏览器(至少是firefox)表示该网站正在使用不受支持的压缩形式(因为之前的输出)。
那么,有没有办法检测输出是否已发送?或者有更好的方法吗?
答案 0 :(得分:4)
你可以使用headers_sent()
我相信。
答案 1 :(得分:1)
PHP提供headers_sent()
函数来实现此目的。
答案 2 :(得分:1)
为了补充@prodigitalson的响应,这是正确的,你可以使用ob_ *函数,ob_start,ob_start等。这将处理输出缓冲区(ob),并且并不真正发送所有发送的数据。在 ob_start 之后的任何时候,您可以决定刷新( ob_end_flush )缓冲区并且它将被真正发送,但您也可以使用 ob_end_clean 清空缓冲区内容。查看documentation。
输出缓冲可以加快响应的传出通信,让你擦除你已经响应的所有内容,这在PHP中始终是个问题。不错的工具。
答案 3 :(得分:0)