Mam wywołanie ajax do somefile.php. Chcę, aby skrypt php wykonał proste zadanie, a następnie odesłał dane do użytkownika i tylko wykonał bardzo czasochłonne zadania. więc muszę opróżnić wyjście po pierwszym prostym zadaniu. to nie działa, prawdopodobnie dlatego, że mam włączone gzip.Dla php flush - jak wyłączyć gzip dla określonego pliku?
Zdecydowanie nie chcę wyłączać programu gzip we wszystkich plikach vhost, a także nie we wszystkich folderach, w których znajduje się plik somefile.php. po prostu chcę wyłączyć to dla tego konkretnego pliku. czy to jest możliwe?
EDIT:
to co podaję w moim apache conf:
<FilesMatch \.php$>
SetEnv no-gzip 1
</FilesMatch>
to mój skrypt 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);
}
?>
to nie działa. nadal widzę wszystkie wyniki razem po 10 sekundach.
Jeśli Twój serwer sieciowy obsługuje kompresję gzip, myślę, że nie można go wyłączyć przez PHP. – noli
Może spojrzeć na to: http://stackoverflow.com/questions/1922934/how-to-disable-mod-deflate-in-apache2 – noli