Beide scheinen das Gleiche zu tun: Geben Sie den Inhalt des Ausgabepuffers an Sie zurück und löschen Sie ihn anschließend.
Welche sollte ich verwenden?
Eka
Beide scheinen das Gleiche zu tun: Geben Sie den Inhalt des Ausgabepuffers an Sie zurück und löschen Sie ihn anschließend.
Welche sollte ich verwenden?
Arnaud Le Blanc
ob_get_clean()
entfernt den Puffer (ohne ihn zu drucken) und gibt seinen Inhalt zurück.
ob_get_flush()
druckt den Puffer, entfernt ihn und gibt seinen Inhalt zurück.
Beide Funktionen beenden den Puffer.
Ist zwar alt, hat mir aber jede Menge Kopfzerbrechen erspart. Köpfe ab!!
– Shivam Maheshwari
4. Dezember 2015 um 6:36 Uhr
OP ist vom 11. September nicht zurückgekommen!
– revo
14. Dezember 2015 um 14:05 Uhr
@revo, er hat es getan: stackoverflow.com/users/576875/arnaud-le-blanc?tab=answers 🙂
– Beda Schmid
22. August 2021 um 4:55 Uhr
ob_get_clean
gibt nur den Inhalt des Puffers zurück und weist ihn der gewünschten Variablen zu, aber es wird nichts ausgegeben.
ob_get_flush
dagegen tut alles das ob_get_clean
tut, aber es gibt auch den Inhalt aus.
phihag
Beide Funktionen löschen den Ausgabepuffer, schalten die Ausgabepufferung aus und geben den vorherigen Pufferwert zurück.
Jedoch, ob_get_flush
sendet zuerst den aktuellen Puffer an den Client, wohingegen ob_get_clean
verwirft es einfach.
-1 für die Aussage, dass ob_get_clean “die Pufferoptionen nicht ändert”. Das ist nicht korrekt – beide schalten die Pufferung tatsächlich aus. Aus der Manpage für ob_get_clean “Gibt den Inhalt des Ausgabepuffers zurück und beendet die Ausgabepufferung”. Auch nicht ganz klar zu sagen, dass es den Puffer verwirft. Das tut es nicht – es gibt es zurück, wie die anderen Antworten sagten. Discards impliziert für mich, dass es vollständig weggeworfen wird.
– Adam
26. Oktober 2012 um 7:17 Uhr
@Adam Toller Fang, habe die Antwort umgeschrieben. Discard und Flush sind Begriffe auf Netzwerkebene, aber die neue Version sollte das verdeutlichen.
– Phihag
26. Oktober 2012 um 8:53 Uhr
Benutzer885983
Um direkt zu versuchen, Ihre Frage zu beantworten:
Wenn Sie mit der Ausgabepufferung beginnen möchten wieder Verwenden Sie nach dem Leeren des Puffers ob_get_clean, da die Ausgabepufferung immer noch bereit ist, ohne sie wieder einschalten zu müssen. (Denken Sie daran, dass dies nur verwendet werden kann, wenn kein Text, sogar Leerzeichen, an den Browser zurückgegeben wird). Daher irren alle meine Programmierbücher für allgemeinere Zwecke in Richtung ob_get_flush (als nur ein Puffer pro den meisten Skripten).
Ich ziehe meine Ablehnung zurück, weil auch ich durch die Beschreibungen im Handbuch verwirrt bin (es ist nicht ganz klar, ob “flush” “output” bedeutet, was meiner Meinung nach der Fall ist)
– Pekka
11. September 2011 um 16:51 Uhr
Geduld, junger Padawan! Es waren nur 6 Minuten und 10 Seitenaufrufe.
– JJJ
11. September 2011 um 16:55 Uhr
Ich denke, die Anzahl der Aufrufe funktioniert nicht, weil ich ungefähr 10 Mal aktualisiert habe
– Eka
11. September 2011 um 16:56 Uhr
@EEka: Dieses System ist nicht so naiv – denken Sie daran, dass es weiß, wer Sie sind 🙂
– Heimat
11. September 2011 um 16:58 Uhr
@Pekka Yup, im Zusammenhang mit der PHP-Ausgabepufferung, Spülung bedeutet das eigentliche Senden der Daten.
– Phihag
11. September 2011 um 17:03 Uhr