PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Pause - Probleme



xant0x
13.11.2011, 20:45
Hi,

Folgendes Beispiel:


<?php
echo "Text1";
sleep(10);
echo "Text2";
?>Ich will, dass zwischen der Ausgabe von Text1 und Text2 10 Sekunden Pause ist.. aber die Ausgaben werden immer am Ende gemeinsam nach 10 Sekunden Pause ausgegeben :(

Mit flush() funktioniert es übrigens auch nicht ..

Kann jemand helfen? Wäre super =)

Danke =)

dlite
13.11.2011, 20:48
würde mir spontan auch keine PHP-Lösung einfallen. Mit Javascript würde ichs auf Anhieb probieren und schauen, dass die getrennt ausgegeben werden.

ocz
13.11.2011, 20:50
flush();

24ds
13.11.2011, 20:51
das Problem bei der AUSGABE ist, dass du einen Teil schon übertragen müsstest und erst dann den Rest... wenn du zum beispiel compressed output aktiviert hast, wird zuerst der output erzeugt und erst am ende übertragen.
Ich würde das was du vor hast auch mit ajax lösen und den 2. Inhalt in einen neuen Request packen.

xant0x
13.11.2011, 20:52
flush(); ist stark browserabhängig und funktioniert bei mir nicht..

Wie würde das mit AJAX funktionieren? Hab da null Erfahrung...

24ds
13.11.2011, 20:57
einfach javascript nach window.load warten lassen (10 sekunden) und dann einen xhttp request feuern der nur den 2. teil noch dazu schreibt...
wie hängt von dem framework ab das du benutzt.... ich empfehle hier auch wenns wie mit kanonen auf spatzen wirkt ein framework damit du nicht die verschiedenen browserweichen selbst coden musst ... :D

echoslider
15.11.2011, 19:25
versuch mal ein ob_start(); am anfang des php scripts.. wenn das nicht geht .. hab keine ahnung aber da steht wa im manual....

output_buffering den wert musst du verändertn. in der php.ini der ist vielleicht zu hoch. oder mach das über eine htaccess...

php_value output_buffering "0"

hoohead
15.11.2011, 19:37
Wenn Du Deinen Code in der Console abfeuerst, dann macht er genau das wie man es erwartet, er wirft in Deinen Zeitabständen die echos aus.

Wenn Du die Seite mit dem Browser ansurfst, passiert genau das gleiche nur dass der Browser das Ergebnis erst nach dem kompletten laden der Seite präsentiert (was eigentlich manchmal bisschen doof ist *g).

Ich weiß nicht genau was Du vorhast und es wäre mit Sicherheit keine schöne Lösung, aber man könnte theoretisch mittels
meta http-equiv="refresh" content="10; url=...
den Browser nach dem ersten Laden dazu verleiten auf die "Eigene Seite" einen Reload auszuführen (Wartezeit 10 Sekunden) und dann mittels hidden Post Request den Rest generieren.

Keine schöne Lösung und ich schäme mich jetzt auch, hier so etwas zu posten :D