#21895 [Com]: implicit_flush and flush() not working proplerly with CLI SAPI

From: Date: Thu, 06 Feb 2003 00:21:28 +0000
Subject: #21895 [Com]: implicit_flush and flush() not working proplerly with CLI SAPI
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-32253@lists.php.net to get a copy of this message
 ID:               21895
 Comment by:       sthomas@townnews.com
 Reported By:      haawk@acknet.org
 Status:           Open
 Bug Type:         Output Control
 Operating System: FreeBSD 4.7
 PHP Version:      4.3.0
 New Comment:

I think the key is this:

implicit_flush => On => Off

Is there a double internal pointer to this setting or something?  No
amount of setting implicit_flush will
make both of them true.

This script does not output as you'd expect:

<?PHP
ob_implicit_flush(1);

while (TRUE)
{
  echo ".\n";
  sleep(1);
}

?>

This should output a period every second on the CLI, but does not. 
Even putting a call to flush() in the while loop does nothing.  I was
able to get this to work by using ob_flush() oddly enough.

So essentially, flushing is completely broken unless you use ob_flush.


Previous Comments:
------------------------------------------------------------------------

[2003-01-27 01:12:59] haawk@acknet.org

Basically it just seems to not be working at all on my system...however
when initiating "php -i" I get:

implicit_flush => On => Off

my configure line was: ./configure --with-mysql --enable-ftp
--with-apxs=/usr/local/apache/bin/apxs


Here is the script, which doesn't output ANYTHING until the script
ends...it is then all flushed out at once...the warning messages come
out as the script executes, but not the echo's or print()'s


<?php
print("weee");
$ftp_server = 'host';
$ftp_user_name = 'user';
$ftp_user_pass = 'pass';
$localprefix = '/usr/home/blah/';
$remoteprefix = '/usr/home/blah/';

$subdirs =
array('lib','HELP','ONJOINS','HELP/CHANSERV','HELP/NICKSERV');

foreach ($subdirs as $dir) {
mkdir($localprefix . $dir);
print("mkdir $localprefix . $dir\n");
}

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!\n";
        echo "Attempted to connect to $ftp_server for user
$ftp_user_name\n";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name\n";
    }

// get the files

foreach ($subdirs as $dir) {
ftp_chdir($conn_id, "$remoteprefix$dir");
print("$remoteprefix$dir");
$curdir = ftp_pwd($conn_id);
foreach (ftp_nlist ($conn_id, $curdir) as $file) {
$download = ftp_get($conn_id, $localprefix . $dir . '/' . $file, $file,
FTP_ASCII);

// check upload status
if (!$download) {
        echo "FTP upload has failed for $dir/$file!\n";
    } else {
        echo "Downloaded $dir/$file successfully\n";
    }
}
}

// close the FTP stream
ftp_close($conn_id);
?>

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=21895&edit=1



Thread (7 messages)

« previous php.bugs (#32253) next »