phpbar.de logo

Mailinglisten-Archive

[php] Verhalten von flush() beim Ausfuehren via Telnet

[php] Verhalten von flush() beim Ausfuehren via Telnet

Andreas Stagl a.stagl at gmx.at
Don Jul 31 16:14:28 CEST 2003


Hallo allesamt,

wenn ich folgendes Beispielscript (ungetestet) im Browser ausführe, klappt 
es ganz so, wie ich es erwarten würde und gibt Zeile für Zeile den Text aus:

<?php
   echo "irgendwas, das lang genug ist um flushen zu können.<br />\r\n";
   flush();
   sleep(1);
   echo "noch irgendwas, das lang genug ist um flushen zu können.<br />\r\n";
   flush();
   sleep(1);
   echo "und letztendlich noch was, das lang genug ist um flushen zu 
können.<br />\r\n";
   flush();
   sleep(1);
?>

Rufe ich das Script aber über Telnet (Windows 2000 -> cmd.exe -> telnet 
mein.host.at 80 -> GET /script.php HTTP/1.1 -> Host:mein.host.at -> 2x 
CRLF) auf, bekomme ich bei jedem flush anscheinend eine Art Return-Code 
inklusive zusätzlicher Linebreaks ausgegeben:

<telnet-output>
   irgendwas, das lang genug ist um flushen zu können.<br />

   ef
   noch irgendwas, das lang genug ist um flushen zu können.<br />

   7a
   und letztendlich noch was, das lang genug ist um flushen zu können.<br />

   14
</telnet-output>

Auch das voranstellen des @-Zeichens vor das flush() verhindert die Ausgabe 
der Return-Codes nicht. Das ganze ist besonders dann lästig, wenn man - so 
wie ich im Moment - ein Script schreibt, dass über telnet gestartet wird, 
und innerhalb des Scripts ein "Progressbar" simuliert werden soll.

Das Script liegt auf einem WAMP Environment:
Win2k + Apache 1.3.27 + PHP 4.3.2

Hat jemand eine Idee, wie ich diese return-codes abdrehen kann?

Schon mal danke im Voraus & liebe Grüße aus Wien,
Andy


php::bar PHP Wiki   -   Listenarchive