dedlfix: Die "guten" alten Zeiten...

Beitrag lesen

Tach!

Und dann sollte man nicht vergessen, dass es nicht 'den einen' Output Buffer gibt, sondern die Dinger auch noch verschachtelt werden.

Das ist eine andere Baustelle, denn dieses von dir hier gemeinte Output-Buffering kann man sich ganz unabhängig von dem in der php.ini konfigurierbaren generellen Output-Buffer einschalten. Wenn man die ob_*()-Funktionen verwendet, dann macht man das üblicherweise bewusst, und bekommt nicht einen per Default gesetzten Buffer vorgesetzt.

Ist das nicht derselbe Bufferstack?

Ähm ja, anscheinend doch. Mit output_buffering > 0 ergibt ob_get_contents() das, was zuvor ausgegeben wurde. Nur wenn output_buffering auf 0/Off steht, ist es false, also unbenutzt. Halten wir also fest, dass es doch dasselbe ist, und sich mit den vorgeschlagenen php.ini-Dateien wie ein ob_start(null, 4096) verhält.

Soweit ich mich erinnere, ist es ein Stapel, aus dem man nicht einfach aus der Mitte (oder von unten) ein Element herauslöschen darf.

Man kann es auch nicht. Man kann mit ob_end_*()/ob_clean()-Funktionen nur auf den zuletzt geöffneten Buffer einwirken.

Und irgendwann war der dann mal nicht mehr per Default bei Level 0, sondern bei 1. Das führte dann damals zu ganz viel Postings, weil irgendwelche Ticker o. ä nicht mehr funktionierten. Ist aber schon ein paar Jahre/PHP-Versionen her.

Davon ist mir nichts bekannt. Ich sehe da auch grad keine Anwendungsfall vor mir. Dass man das Level mit ob_get_level() abfragen kann, offenbart das Handbuch zwar, aber wozu man das verwenden wollen würde, sehe ich nicht.

dedlfix.