warum muss ich am Ende meiner ob_start()?
Die php-Dokumentation schlägt vor, dass ich am Ende jedes ob_start() mit ob_end_flush(). Ich bin mit einer auf jeder Seite einer Website, nur um mir zu erlauben, verwenden Sie hier FirePHP log-Methoden überall in der app.
die app funktioniert gut, aber ich Frage mich, ob es irgendetwas gibt, was ich nicht weiß, das könnte schädlich sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, der Grund für diesen Vorschlag ist, dass PHP leert den Ausgabepuffer implizit, wenn Sie nicht mit einer der
ob_end_*
Funktionen. Während nicht ein Fehler, diese kann Probleme verursachen, wenn Sie nicht erwartet. Die PHP-docs versuchen, Sie zu schützen von dieser Art von Problemen. Wenn Sie sind sich der impliziten flush, ist es wahrscheinlich kein Problem.Können Sie Output Buffering benutzen, wie
Das problem ist, dass wir nicht senden Sie die Kopfzeile nach dem wir beginnen, das senden der Ausgabe. Um dieses Problem zu lösen, die wir Puffer für die Ausgabe. Die Funktion ob_start dreht output buffering auf. Während die Ausgabepufferung aktiv ist, wird keine Ausgabe geschickt aus dem Skript (außer Header), anstatt die Ausgabe wird gespeichert in einem internen Puffer. Also die echo-Ausgabe wird gepuffert werden. Als Nächstes senden wir die header ohne problem, da haben wir noch nicht ausspucken keine Ausgabe. Schließlich nennen wir ob_end_flush Spülen, um die internen Puffer-Inhalt und stoppen Sie die Ausgabe-Pufferung.
wenn es Schleifen, zum Beispiel, einige kann man starten Pufferung. Und fordert Ihre Funktion. Als er versucht, ob_end_flush code sammelt Ihre Inhalte.