对于php flush - 如何禁用特定文件的gzip?

Mos*_*ham 9 php apache apache2

我对somefile.php进行了ajax调用.我希望php脚本能够执行一项简单的任务,而不是将数据发送给用户,而且只需要执行非常耗时的任务.所以我需要在第一个简单的任务后刷新输出.它不起作用,可能是因为我有gzip启用.

我绝对不想在所有vhost中禁用gzip,也不想在somefile.php所有的文件夹中禁用gzip.我只是想为这个特定的文件禁用它.那可能吗?

编辑:

这就是我在apache conf中包含的内容:

<FilesMatch \.php$>
    SetEnv no-gzip 1
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

这是我的PHP脚本:

<?php
$sucesss = @apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);

ob_start();

for($i=0;$i<10;$i++)
{
    echo 'printing...';
    ob_flush();
    flush();

    sleep(1);
}
?>
Run Code Online (Sandbox Code Playgroud)

它不起作用.我仍然在10秒后看到所有输出.

B. *_*tin 7

我一直在为同一个问题寻找解决方案.这对我有用,但遗憾的是它不是一个有效的标题.

<?
header("Content-Encoding: none");
?>
Run Code Online (Sandbox Code Playgroud)


小智 2

将其放入 httpd.conf 中

# exclude certain page requests (e.g. for requesting getMyFile.php?action=getFile&id=3 as non-compressed)
SetEnvIfNoCase Request_URI getMyFile\.php$ no-gzip dont-vary
Run Code Online (Sandbox Code Playgroud)