Heim Backend-Entwicklung PHP-Tutorial Detaillierte Erläuterung der Beispiele für ob-Funktionserweiterungen in PHP

Detaillierte Erläuterung der Beispiele für ob-Funktionserweiterungen in PHP

Jun 24, 2017 pm 02:35 PM
php 函数 实例 扩展 详解

Für einen neuen PHP-Programmierer ist der PHP-Puffer nahezu transparent. Ihrer Meinung nach fliegen die Daten mit einer echo print_r-Funktion mit einem „Swoosh“-Geräusch zum Browser und werden dort angezeigt. Ich habe immer so einfach gedacht. Tatsächlich haben sich die Dinge in der Welt der Technologie immer von der Einfachheit zur Komplexität weiterentwickelt. Vielleicht haben diese Technologieentwickler so einfach angefangen wie Sie und ich, aber angesichts der grausamen Realität mussten sie ihre Strategien anpassen, um besser zu werden Schließlich haben sie an die Dinge gedacht, die die Maschine effizienter machen.

Wenn wir von Puffer sprechen, müssen wir ihn mit dem Cache vergleichen. Schauen Sie sich einfach an, was sie bewirken. Caching löst das Problem, Daten schnell zu finden und zu nutzen und CPU-Verbrauch einzusparen, während Pufferung das Problem der Nichtübereinstimmung zwischen Hochgeschwindigkeits-CPU und langsamen E/A-Geräten löst.

Lassen Sie uns über den anderen Protagonisten dieses Artikels sprechen, die ob-Funktion ist die Abkürzung für output_buffering. Da es sich bei der ob-Funktion um eine PHP-Erweiterungsfunktion handelt, ist die Hauptoperation der ob-Funktion PHP-Puffer.

Nachdem wir kurz auf die beiden Protagonisten dieses Artikels eingegangen sind, müssen wir zum Ausgangsthema zurückkehren. Wie gelangen die von der Funktion echo print_r ausgegebenen Daten zum Browser, damit der Benutzer sie sehen kann? Der eigentliche Prozess ist wie folgt:

echo、print_r=>php output_buffering=>webServer buffer=>browser buffer=>browser display
Nach dem Login kopieren

Wir können deutlich sehen, dass von der Funktion echo, print_r bis zum Senden von Informationen an den Client zwei Puffer durchlaufen werden über einen Browserpuffer. Was wir in diesem Artikel hauptsächlich besprechen, ist PHP-Ausgabepufferung.

Nutzung des Puffers, wenn die ob-Funktion nicht verwendet wird

Unsere Codes verwenden die ob-Funktion oft überhaupt nicht. Verwenden sie also den Puffer? Dies hängt von den PHP-Einstellungen ab. Der Puffer wird über die Variable „output_buffering“ in php.ini gesteuert. Der Standardwert ist „off“ und kann auf „on“ gesetzt werden, um den Puffer zu öffnen. Nach dem Aufruf des Puffers verwendet der Code tatsächlich den Puffer, auch wenn die ob-Funktion nicht im Programm verwendet wird. Darüber hinaus ist PHP im CLI-Modus unabhängig von der Einstellung von „output_buffering“ in „php.ini“ standardmäßig immer geschlossen.

Warum ist es ein Puffer? Vereinfacht ausgedrückt hat die Hochgeschwindigkeits-CPU ihre eigenen Daten frühzeitig verarbeitet und möchte sie über die Leitung an den Benutzer übertragen, aber die Leitung ist zu schmal und kann nicht sofort übertragen werden. Wenn ein Puffer eingeführt wird, kann die CPU die generierten Daten schnell in den Puffer legen und sie dann an einem kühlen Ort ruhen lassen. Der Puffer gibt Daten zeitnah gemäß den Anweisungen aus. Dadurch wird der Widerspruch zwischen Hochgeschwindigkeits-CPU und langsamen E/A-Geräten effektiv gelöst.

Wann werden die Pufferdaten ausgegeben? 1. Wenn der Puffer voll ist, verfügt der Puffer über eine Kapazität und der Inhalt wird automatisch ausgegeben, wenn das Limit erreicht ist. 2. Die Skriptausführung ist abgeschlossen. Viele kleine Programme geben nicht so viel Inhalt aus, sodass Sie mit der Ausgabe nicht warten können, bis der Puffer voll ist ~ Das ist natürlich.

 Puffernutzung bei Verwendung der ob-Funktion

ob_start()
Nach dem Login kopieren

Ausgabepufferung aktivieren. Diese Funktion ist eine der Funktionen, die wir am häufigsten aufrufen. Wenn „output_buffering“ auf „on“ oder „x k“ gesetzt ist, öffnet diese Funktion den Ausgabepuffer nicht so sehr, sondern erweitert den Ausgabepuffer auf eine große Größe. Unter der Bedingung, dass „output_buffering“ auf „off“ gesetzt ist, übernimmt ob_start natürlich die Rolle des Öffnens des Puffers. ob_start() kann auch einen optionalen Parameter an die Funktion „output_callback“ übergeben, der im offiziellen PHP-Handbuch ausführlich erläutert wird.

ob_get_contents()
Nach dem Login kopieren

Ruft nur den Inhalt des Ausgabepuffers ab, löscht ihn jedoch nicht.

ob_end_clean()与ob_clean()
Nach dem Login kopieren

Der Unterschied zwischen diesen beiden Funktionen ist buchstäblich zu sehen. Ersteres löscht den Pufferinhalt und schließt ihn, während letzteres nur die Löscharbeit übernimmt. Es ist zu beachten, dass nach Verwendung dieser beiden Funktionen die vorherigen Funktionen wie echo und print_r den Inhalt nicht ausgeben.

Der Autor hat einmal versucht, den Inhalt von ob_get_contents() über print_r auszudrucken, und hat dann ob_clean() aufgerufen, um den Puffer zu löschen, damit er nicht beeinträchtigt wird Nachfolgende Operationen am Puffer schlugen wiederholt fehl. Wenn Sie sorgfältig darüber nachdenken, wird der Inhalt von print_r erneut in den Puffer geschrieben und dann die Operation ob_clean() ausgeführt, sodass natürlich keine Ausgabe erfolgt. Durch Aufrufen der Funktion ob_flush() vor der Operation ob_clean kann der gewünschte Effekt erzielt werden.

ob_flush()与flush()
Nach dem Login kopieren

ob_flush() sendet den Inhalt des Puffers und verwirft den Inhalt. Daher ist es am besten, vor dieser Funktion ob_get_contents() zu verwenden, um den Pufferinhalt abzurufen. Flush() leert den serverseitigen Puffer und sendet ihn an den Client. Daher sollte aus Prozesssicht zuerst ob_flush() und dann die Flush-Funktion aufgerufen werden.

  另外说明下再Apache buffer flush()的工作原理:在apache module的sapi下,flush会通过调用sapi_module()的flush成员函数指针,间接使用apache的api::ap_rflush刷新apache的输出缓冲区。当然apache其他模块比如mod_gzip可能改变这个动作的结果,可能自己进行输出缓冲区,这将导致flush()函数产生的结果不会立即被送到客户端浏览器。

ob_get_clean()
Nach dem Login kopieren

  如果你已经熟练掌握ob_get_contents()ob_clean(),那这个函数就很简单了。因为它是前两者的结合体。它主要是得到当前缓冲区的内容并删除当前输出缓冲区。

  ob函数还有很多,但大部分用法比较简单,理解较为容易。大家可以参照php手册 ,里面会有详细的解释。本文列出了笔者开始并不是很理解的一些函数,当然今后还会有新的问题出现,想到问题并且解决问题,生活的乐趣也许就在此处吧。

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für ob-Funktionserweiterungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles