PHP-Funktion ob_implicit_flush(): Alles, was Sie wissen müssen
Als PHP-Entwickler müssen Sie möglicherweise das implizite Leeren des Ausgabepuffers steuern. Die ob_implicit_flush()-Funktion ist eine integrierte PHP-Funktion, die dieses Verhalten aktiviert oder deaktiviert. Dieser Artikel behandelt die Syntax, die Anwendung und praktische Überlegungen dazu.
Was ist die ob_implicit_flush()-Funktion?
Die Funktion ob_implicit_flush() schaltet das implizite Leeren ein oder aus. Wenn aktiviert, ruft PHP automatisch ob_flush() nach jeder echo- oder print-Anweisung auf. In modernen PHP-Versionen gibt diese Funktion void zurück. Darüber hinaus puffern Webserver (wie Apache oder PHP-FPM) die Ausgabe oft unabhängig voneinander, sodass Sie möglicherweise weiterhin flush() aufrufen müssen, um sicherzustellen, dass die Daten sofort den Browser erreichen.
So verwenden Sie die ob_implicit_flush()-Funktion
Die Verwendung der Funktion ob_implicit_flush() ist unkompliziert. Hier ist die Syntax:
Die PHP-Syntax der ob_implicit_flush()-Funktion
ob_implicit_flush(bool $flag = true): void;Hier ist ein Beispiel, das veranschaulicht, wie das implizite Leeren aktiviert und die Bereinigung gehandhabt wird:
So verwenden Sie die ob_implicit_flush()-Funktion?
<?php
ob_start();
ob_implicit_flush(true);
echo "This will be flushed automatically";
flush();
sleep(5);
ob_end_clean();In diesem Beispiel initialisiert ob_start() den Ausgabepuffer. Der Aufruf von ob_implicit_flush(true) aktiviert das automatische Leeren. Der Aufruf von flush() stellt sicher, dass die Ausgabe die Puffer des Webservers umgeht und sofort den Browser erreicht. Der Aufruf von sleep(5) zeigt, dass der Browser die Nachricht empfängt, bevor das Skript beendet wird. Abschließend verwirft ob_end_clean() den noch gepufferten Inhalt. Beachten Sie, dass Sie bei aktiviertem impliziten Leeren weiterhin manuell ob_flush() aufrufen können, wenn eine zusätzliche Steuerung erforderlich ist.
Fazit
Die Funktion ob_implicit_flush() bietet eine einfache Möglichkeit, das Verhalten des Ausgabepuffers in PHP zu steuern. Durch das Verständnis des void-Rückgabetyps und der Interaktion mit flush() sowie serverseitigen Puffern können Sie die Echtzeit-Ausgabe für langlaufende Skripte oder Fortschrittsanzeigen effektiv verwalten.
Praxis
Was bewirkt ob_implicit_flush(1) in PHP?