Hallo,
Ik heb onlangs PHP en Apache opnieuw geïnstalleerd op mijn Windows (XP) machine. Sindsdien werkt de flush-functie in PHP niet meer. Ik heb hier eerder last van gehad en heb het toen kunnen oplossen door wat instellingen in php.ini en httpd.conf aan te passen. Ik gebruikte toen PHP 5 en Apache 2, en nu nog steeds. Mijn oude configuratiebestanden zijn echter verloren gegaan, waardoor ik niet meer kan terugvinden hoe ik het toen heb opgelost.
Naar de volgende instellingen in php.ini heb ik al gekeken, en die staan volgens mij goed:
output_buffering = 0
zlib.output_compression = Off
implicit_flush = Off
Ik meende dat er in httpd.conf nog iets gewijzigd moest worden wat betreft compressie. Zoals bij de documentatie van de flush-functie in PHP al staat:
Een simpel PHP-scriptje om te testen:
(De tekst 'De tijd' zou een seconde eerder moeten verschijnen voordat de tijd wordt weergegeven.)
Wie heeft een oplossing voor mijn probleem?
Alvast bedankt!
Ik heb onlangs PHP en Apache opnieuw geïnstalleerd op mijn Windows (XP) machine. Sindsdien werkt de flush-functie in PHP niet meer. Ik heb hier eerder last van gehad en heb het toen kunnen oplossen door wat instellingen in php.ini en httpd.conf aan te passen. Ik gebruikte toen PHP 5 en Apache 2, en nu nog steeds. Mijn oude configuratiebestanden zijn echter verloren gegaan, waardoor ik niet meer kan terugvinden hoe ik het toen heb opgelost.
Naar de volgende instellingen in php.ini heb ik al gekeken, en die staan volgens mij goed:
output_buffering = 0
zlib.output_compression = Off
implicit_flush = Off
Ik meende dat er in httpd.conf nog iets gewijzigd moest worden wat betreft compressie. Zoals bij de documentatie van de flush-functie in PHP al staat:
Ik kan de gzip-module echter niet terugvinden in Apache 2, dus ik weet niet zeker of dat het probleem was, of dat de compressie op een andere manier moet worden uitgeschakeld.Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client.
Een simpel PHP-scriptje om te testen:
code:
1
2
3
4
5
6
7
8
| <?php echo 'De tijd: '; flush(); sleep(1); echo date('H:i:s'); ?> |
(De tekst 'De tijd' zou een seconde eerder moeten verschijnen voordat de tijd wordt weergegeven.)
Wie heeft een oplossing voor mijn probleem?
Alvast bedankt!