Unterschied zwischen ob_get_clean und ob_get_flush

Lesezeit: 2 Minuten

Benutzer-Avatar
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?

  • 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


Benutzer-Avatar
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.

Benutzer-Avatar
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

Benutzer-Avatar
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).

1272490cookie-checkUnterschied zwischen ob_get_clean und ob_get_flush

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy