php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Apache, Lighttpd, nginx, Cherokee
kumpel2
Posts: 46
Joined: 2006-08-09 16:13
Location: Essen Nord

php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by kumpel2 » 2007-07-03 14:26

Hallo Forum,

ich versuche gerade ein Script online zu bringen, welches nach bestimmten Sekunden eine Ausgabe einzeln zu tun und nicht als ganzes.

Leider kommt derzeit bei der FastCGI Version von PHP nur die komplette ausgabe.

Hier einmal der Code:

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
<?
    $count=$_GET['C'];

    FOR($i=0;$i<$count;$i++){
        echo '<pre> count: ',$i,'</pre>';flush();
        if($_GET['S'])
                sleep($_GET['S']);
    }

?>
  </body>
</html>
Kennt wer eine Lösung?

Es sollte weiterhin PHP mit FastCGI Betrieben werden.

Unter suPHP funktioniert es ja nun auch.

Vielen dank.

der KuMpEl2

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by Roger Wilco » 2007-07-03 14:41

Du hast nicht verstanden, dass HTTP ein zustandsloses Protokoll ist.

dotme
Posts: 150
Joined: 2004-12-15 16:48

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by dotme » 2007-07-03 16:00

Roger Wilco wrote:Du hast nicht verstanden, dass HTTP ein zustandsloses Protokoll ist.
Ich denke der OP will nur, daß die bisherigen Ausgaben seines Skriptes ohne Verzögerung an den Client geschickt werden.

Vielleicht hilft dazu der Parameter "-flush" in FastCgiServer.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by Roger Wilco » 2007-07-03 16:06

dotme wrote:Ich denke der OP will nur, daß die bisherigen Ausgaben seines Skriptes ohne Verzögerung an den Client geschickt werden.
Schon klar. Aber das setzt ein bestimmtes Verhalten des Webbrowsers voraus. Nicht alle Browser rendern die Seite schon, wenn sie noch nicht komplett heruntergeladen wurde.

kumpel2
Posts: 46
Joined: 2006-08-09 16:13
Location: Essen Nord

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by kumpel2 » 2007-07-04 11:24

dotme wrote:Ich denke der OP will nur, daß die bisherigen Ausgaben seines Skriptes ohne Verzögerung an den Client geschickt werden.
Genau!
dotme wrote: Vielleicht hilft dazu der Parameter "-flush" in FastCgiServer.
HI dotme, leider brachte ein -flush keine ensprechende Wirkung -.-

cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by cirox » 2007-07-05 23:47

ich kann Dich beruhigen unter PHP 5.2.x tuts das alles auch nicht. Auf jeden Fall kenn ich das Problem und hab schon viele Einstellungen durch. FastCGI mit dieser Funktion tuts nicht. Ich glaub nicht, dass das was mit dem Browser in dem Fall zu tun hat, weil FastCGI ja nur den Prozess offen halten sollte. Aber ich kann mich hier auch vollkommen irren.

Bugreport ?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by Joe User » 2007-07-06 00:09

Fipptehler im Post, oder sind die Kommata in dieser Zeile auch im Original:

Code: Select all

echo '<pre> count: ',$i,'</pre>';

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by Roger Wilco » 2007-07-06 00:11

Das ist kein Fehler, sondern eine andere Semantik für 'echo'.
Mit '.' werden zwei Strings konkateniert und das Resultat ausgegeben, mit ',' werden verschiedene Variablen oder Konstanten getrennt und ausgegeben.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by Joe User » 2007-07-06 00:20

OK, hatte bisher nur mit Punkten zu tun. Funktioniert es denn mit:

Code: Select all

ob_flush();flush();usleep(50000);

kumpel2
Posts: 46
Joined: 2006-08-09 16:13
Location: Essen Nord

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by kumpel2 » 2007-07-07 23:49

Leider gehts damit auch nicht...

Es kommt nur die volle ausgabe raus... -.-

Bin leider am ende und weiß nich weiter....

Gibts keine wirkliche möglichkeit?

mit suphp gings ja auch ^^

lg

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: php4.4.7+apache2.2+fastcgi flush() erwirkt keine funktion...

Post by dtdesign » 2007-07-08 00:41

Lighy kann das mit mod_deflate, soweit ich das richtig verstehe:
The sync-flush option allows dynamic scripts to flush output to the browser and still use compression. work-block-size is the number of kilobytes to compress at one time, it allows the webserver to do other work (network I/O) in between compression. min-compress-size is the smallest response size that will be compressed.
Quelle: http://trac.lighttpd.net/trac/wiki/Mod_Deflate

Gruß
dtdesign[/quote]