Ein paar Probleme mit der Ausgabepufferung. Hauptsächlich versuche ich, die Ausgabepufferung mit dem Rückruf ob_gzhandler auszuführen, aber es sagt mir immer wieder, dass es einen nicht unterstützten Komprimierungstyp verwendet. Alles aktiviert ist, und ich glaube, das Problem ist, dass ob_get_level läuft() zu Beginn meines Skript erzeugt ein Niveau von 1. php.ini hat mein output_buffering auf 4096.ob_get_level() beginnt bei Level 1
Wenn ich etwas laufen wie:
while(ob_get_level() > 0){
ob_end_clean();
}
Dann kann ich ob_start() mit dem Ob_gzhandler Callback erfolgreich ausführen. Aber ich frage mich, ob es ein Problem sein sollte. Während meines Skripts rufe ich an verschiedenen Stellen zu ob_clean() auf, da ich es vermeide, zu viele Puffer zu stapeln, da ich gelesen habe, dass dies die Leistung erhöhen kann. Ich bin mir nur unsicher, was ich hier machen soll.
Prost.
Ja, ich glaube ich tue. Es ist gesetzt als: output_buffering = 4096 (was ich oben gesagt habe). Worauf ich hinaus will, ist, ob ich das so lassen soll, wie es ist, und einfach die obige Schleife laufen lasse, damit ich Output-Pufferung ob_gzhandler starten kann? –
@Jason Lewis: Das liegt an dir. Ich würde wahrscheinlich die Standard-OB für alle Skripts eingeschaltet lassen und sie mit der 'while'-Schleife beenden, falls ich meine eigene verwenden wollte. – Piskvor
Ich sollte sagen, ich benutze ob_get_clean() an einigen Stellen, um die Ausgabe in ein paar Variablen zu speichern und schließlich wird es geleert. Ist dies ein guter Weg, oder sollte ich einen neuen Puffer für jeden Ort, an dem ich die Ausgabe erfassen möchte, starten und stattdessen ob_get_flush() verwenden? –