Was ist output buffering?
Was ist output buffering und warum ist der eine mit es in PHP?
InformationsquelleAutor Abhimanyu | 2010-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist output buffering und warum ist der eine mit es in PHP?
InformationsquelleAutor Abhimanyu | 2010-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Output Buffering für Web-Entwickler, a Beginner ' s Guide:
Ist wirklich alles gepuffert, bis zum Ende, oder wird die Seite kommen Sie einfach in Stücke wenn ich reeeeally lange Seite?
wenn Sie starten Sie die Ausgabe-Pufferung mit
ob_start()
, wirklich alles ist gepuffert. es gibt einen optionalen zweiten parameter, umob_start()
,int $chunk_size
, die, wenn gesetzt, bewirkt, dass die Puffer geleert werden nach jeder Ausgabe aufrufen, die bewirkt, dass die Puffer der Länge gleich oder überschreiten diese Größe.Wenn man "Warning: Cannot modify header information" , das bedeutet, dass Sie benötigen, um die Prüfung der code zuerst die Ausgabe-Pufferung ist ein fix der das symptom und nicht die Ursache. Etwas schreiben, bevor es an der Reihe ist. Also ich bin nicht einverstanden, aber nicht genug, um bump, die Antwort unten.
Ich sehe nur Vorteile der Verwendung von Puffern, also, warum Es nicht standardmäßig aktiviert ist in php?
InformationsquelleAutor ax.
Die Ausgabe-Pufferung ist von PHP verwendet, um die Leistung zu verbessern und führen Sie ein paar tricks.
Können Sie PHP, speichern Sie alle Ausgaben in einen Puffer und-Ausgang alles auf einmal verbessern die Netzwerk-performance.
Können Sie den Zugriff auf die Puffer-Inhalte ohne senden Sie es zurück an den browser in bestimmten Situationen.
Betrachten Sie dieses Beispiel:
Obigen Beispiel erfasst die Ausgabe in einer variable, anstatt es an den browser. output_buffering ist standardmäßig deaktiviert.
Betrachten Sie dieses Beispiel:
Puffer wird geleert, wenn Sie rufen Sie eine der flush-Methode (z.B.
ob_flush()
oderob_end_flush()
). Die Inhalte des Puffers werden auch geleert, wenn Ihr Skript endet, abrupt oder sonst so es sollte kein problem sein.InformationsquelleAutor Salman A
http://php.net/manual/en/book.outcontrol.php
Weitere Ressourcen:
Output-Buffering Mit PHP
InformationsquelleAutor Sarfraz
Ich weiß, dass dies ist eine alte Frage, aber ich wollte schreiben, dass meine Antwort für visuell Lernende. Ich konnte nicht finden, dass alle Diagramme erläutert output buffering auf das worldwide-web, also machte ich etwas, was mich in mspaint.
Wenn die Ausgabe-Pufferung deaktiviert ist, dann
echo
senden Daten direkt an den Browser.Wenn output buffering aktiviert ist, wird dann eine
echo
sendet Daten an die output-buffer vor dem senden an den Browser.phpinfo
Um zu sehen, ob die Ausgabe-Pufferung ist ein - /ausgeschaltet entnehmen Sie bitte phpinfo auf die Kern-Abschnitt. Die
output_buffering
Richtlinie wird Ihnen sagen, wenn Output buffering ist on/off.In diesem Fall ist der
output_buffering
Wert ist 4096, was bedeutet, dass die Puffer-Größe von 4 KB. Es bedeutet auch, dass die Ausgabe-Pufferung eingeschaltet ist, wird auf dem Web-server.php.ini
Es ist möglich, aktivieren/deaktivieren und ändern der buffer-Größe, indem Sie den Wert der
output_buffering
Richtlinie. Finde es einfach inphp.ini
, ändern Sie die Einstellung Ihrer Wahl, und starten Sie den Webserver neu. Finden Sie ein Beispiel meinerphp.ini
unten.Die Richtlinie
output_buffering
ist nicht die einzige konfigurierbare Richtlinie für die Ausgabe-Pufferung. Finden Sie andere konfigurierbare Output buffering Richtlinien hier: http://php.net/manual/en/outcontrol.configuration.phpBeispiel: ob_get_clean()
Unten können Sie sehen, wie Sie zum aufzeichnen eines
echo
und manipulieren vor dem senden an den browser.Beispiele: Hackingwithphp.com
Weitere Infos über den Ausgabe-Puffer mit Beispielen finden Sie hier:
http://www.hackingwithphp.com/13/0/0/output-buffering
InformationsquelleAutor Julian
Als Namen schlage vor, hier Speicherpuffer verwendet, um zu verwalten, wie die Ausgabe des Skripts angezeigt wird.
Hier ist eine sehr gutes tutorial für das Thema
InformationsquelleAutor nik
Puffer verschachtelt werden können, während also ein Puffer aktiv ist, eine andere ob_start() aktiviert einen neuen Puffer. So ob_end_flush() und ob_flush() sind nicht wirklich senden, den Puffer an den Ausgang, sondern auf den übergeordneten Puffer. Und nur, wenn es keine übergeordnete buffer-Inhalt gesendet wird, um browser oder terminal.
Schön erklärt hier: https://phpfashion.com/everything-about-output-buffering-in-php
InformationsquelleAutor sudip
UPDATE 2019. Wenn Sie dedicated server und SSD oder besser NVM, 3.5 GHZ. Sie sollten nicht verwenden Sie die Pufferung, um schneller geladene Webseite in 100 MS-150 MS.
Becouse Netzwerk ist langsamer als proccesing-Skript in der 2019 mit der Leistung von Servern (Server,Speicher,Festplatte) und schalten Sie den APC PHP 🙂 Zum generierten Skript muss manchmal nur 70ms ein anderes mal ist nur Netzwerk nimmt Zeit von 10ms bis zu 150mm von der sich Benutzer-server.
also, wenn Sie wollen, werden Sie schnell, 150mm, Pufferung machen slowl, weil zusätzliche Sammlung Puffer von Daten, die es machen, extra Kosten. 10 Jahren, als server machen 1s-Skript, es war nützlich.
Bitte becareful output_buffering haben begrenzen, wenn Sie möchten mit jpg zu laden es kann flush automatisieren und Absturz senden.
Cheers.
Können Sie machen schnelle Fluss
oder
Sie können sicher tama 🙂
InformationsquelleAutor Kamil Dąbrowski