|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-12-12 04:48 UTC] yohgaki@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 20:00:02 2025 UTC |
Given a perl script test.pl: #!/usr/bin/perl $| = 1; # immediate flush for ($i=0;$i<10;$i++) { print "*"; sleep(2); } exit; And a php script test.php: <? header("Content-Type: text/plain"); ob_immediate_flush; # here or in php.ini echo "calling test.pl\n"; passthru("/path/to/test.pl"); echo "finished\n"; ?> Eventhough both scripts have buffering disabled, no progressive content loading happens. PHP autoflushes the first echo-line, but passthru-output is not flushed until the test.pl script has completed. There are situations where this behavior is no good. I have perl-scripts doing jobs on our server. These perl-scripts are called from a webpage (aka php-script). However, an inbetween firewall shuts down communication after 5 mins with no data transferred. In order to keep the connection alive, I rewrote the perl-scripts such as to send a progress character to the browser every 30 seconds. Not being autoflushed, they don't keep alive anything :-)