Heim Backend-Entwicklung PHP-Problem So schließen Sie den Puffer in PHP

So schließen Sie den Puffer in PHP

Sep 28, 2021 pm 07:08 PM
php 缓冲区

So deaktivieren Sie den Puffer in PHP: 1. Öffnen Sie das PHP-Installationsverzeichnis, suchen und öffnen Sie die Konfigurationsdatei „php.ini“ 2. Suchen Sie in der Konfigurationsdatei das Element „output_buffering“ und legen Sie den Wert fest den Punkt auf „Aus“ stellen. Das war's.

So schließen Sie den Puffer in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP-Puffer (Puffer)

Die Skriptausgabeinformationen werden zuerst in den Puffer gelegt, und zwar nur Wenn der Puffer voll ist oder die Ausführung des Skripts abgeschlossen ist, werden die Daten zur nächsten Stufe übertragen. Sie finden das Einstellungselement output_buffering in der Konfigurationsdatei php.ini. Meine Standardkonfiguration (Windows/XAMPP v3.2.2) ist 4096

So schließen Sie den Puffer in PHP

Wenn auf „Ein“ gesetzt, ist der Puffer verfügbar und es gibt keine Größenbeschränkung

Wenn die Einstellung Aus ist, ist der Puffer nicht verfügbar.

Wenn die Einstellung auf eine Ganzzahl eingestellt ist, ist der Puffer verfügbar und hat die festgelegte Größe in Bytes. Es ist zu beachten, dass ini_set die Puffergröße nicht festlegen kann Dies wurde beim Initialisieren der Skriptausführungsumgebung durchgeführt. Okay, die Definition von buffer ist im CLI-Modus standardmäßig deaktiviert.

Dann stellt sich die Frage: Was ist der Unterschied zwischen dem Schließen und Öffnen des Puffers? Was bewirkt die anfängliche Puffergröße? Der CLI-Modus ist standardmäßig deaktiviert. Kann er aktiviert werden, wenn das Unternehmen ihn benötigt? Welche Vorteile bietet der Cache-Bereich?

1. Was ist der Unterschied zwischen dem Schließen und Öffnen des Puffers?

Überprüfung des bestandenen Codes

Wenn Output_Buffering als 4096 konfiguriert ist, führen Sie den Code aus

Ausgabeergebnis: Nach 3 Sekunden Wartezeit werden Start und Ende gleichzeitig ausgegeben

Wenn Output_buffering als Off konfiguriert ist, Führen Sie den gleichen Code aus

Ausgabeergebnis: Start wird zuerst ausgegeben, und nach 3 Sekunden Wartezeit wird Ende ausgegeben. Die Ergebnisse sind genau die gleichen ~ aber als ich den laufenden Prozess beobachtete, stellte ich einen überraschenden Unterschied fest. Wenn die Pufferung ausgeschaltet ist, wird zuerst „Start“ und nach einer Wartezeit von 3 Sekunden „Ende“ ausgegeben. Wenn der Puffer aktiviert ist, wartet er auf den Abschluss der Skriptausführung und gibt die Ergebnisse zusammen aus

In diesem Beispiel wird Flush verwendet, um den Apache-Puffer zu aktualisieren, was dem Herstellen einer direkten Verbindung zwischen dem PHP-Puffer und dem ähnelt Browser, sodass unsere Aufmerksamkeit auf den PHP-Puffer selbst gerichtet werden kann.

Durch ein anschauliches Beispiel ist der PHP-Puffer wie ein großes Haus. Jedes Mal, wenn die Ausgabefunktion wie Echo ausgeführt wird, werden Daten in dieses große Haus geworfen, bis die Skriptausführung abgeschlossen ist oder die Funktion ob_flush ausgeführt wird, um die Daten zu übertragen das große Haus freigegeben und in den WebServer-Puffer geworfen. Nach dem Schließen des PHP-Puffers wird die Echo-Funktion ausgeführt, wenn kein großes Haus vorhanden ist, in das ich sie direkt an den WebServer-Puffer übergeben kann.

Anhand von Beispielen und Codeausführungsergebnissen können wir verstehen, dass der sogenannte PHP-Puffer ein von PHP selbst entwickelter Datenspeicher-Hub ist und eine Reihe von Ob-Funktionen zu diesem Zweck tätig sind. (Zeigen Sie einige Beispielfunktionen)

ob_clean(); //Löschen Sie den Inhalt des internen Puffers, ohne den Puffer zu schließen (keine Ausgabe).

ob_end_clean(); //Löschen Sie den Inhalt des internen Puffers und schließen Sie den Puffer (keine Ausgabe).

ob_get_contents(); //Gibt den Inhalt des Puffers zurück, gibt nicht aus

ob_get_length();/Gibt die Länge des internen Puffers zurück, gibt diese Funktion FALSE zurück.

2. Welche Rolle spielt die anfängliche Puffergröße?

Ändern Sie die Ausgabepufferung von 4096 auf 5, um das Testen zu erleichtern.Code ausführen 345, warte auf 3 Sekunden später endet die Ausgabe

Ein Vergleich der Ausgabe kann den Unterschied deutlich verdeutlichen.

Der Puffer kann nur 5 Bytes an Daten aufnehmen. Wenn die eingegebenen Daten kleiner als der Maximalwert sind, können sie zuerst gespeichert werden. Wenn sie größer oder gleich dem kritischen Wert sind, müssen die Daten gespeichert werden rausgeschmissen. Dies ist, was wir manuell tun. Die ob_flush-Funktion hat einen Effekt.

3. Der CLI-Modus ist standardmäßig deaktiviert. Kann er aktiviert werden, wenn das Unternehmen ihn benötigt?

Diese Frage kann ergänzt werden: Wenn php.ini den Puffer deaktiviert, das Unternehmen ihn jedoch verwenden muss, was kann ich dann tun? Natürlich wird es nicht so schwierig sein.

ob_start(); Alle Ausgabeinformationen werden nicht mehr direkt an den Browser gesendet, sondern im Ausgabepuffer gespeichert .

Da wir nun wissen, dass der PHP-Puffer dem Konzept des temporären Datenspeicherbereichs ähnelt, schauen wir uns noch einmal den TP5-Quellcode an.

Schauen Sie sich zunächst die Erklärung der Funktionen ob_get_level und ob_get_clean an

ob_get_level(): Gibt die Verschachtelungsebene des Ausgabepuffermechanismus zurück.

ob_get_clean(): Den Inhalt des aktuellen Puffers abrufen und den aktuellen Ausgabepuffer löschen.

Sie können auch ein oder zwei Dinge aus dem Code lernen. Wenn der Level größer als 0 ist, rufen Sie den Inhalt des Puffers ab, löschen Sie den Puffer und öffnen Sie dann einen neuen über ob_start „erneute Anwendung“ in den Kommentaren erklärt.

Die sogenannte Verschachtelung wird hier erklärt, wann der Wert von level 0 ist und wenn er nicht 0 ist, was ist es? Bitte schalten Sie php.ini Output_buffering und Output aus, um das Ergebnis zu sehen. Versuchen wir außerdem, die Ausgabeergebnisse zu vergleichen, ob_start mehrmals und ob_get_level mehrmals.

Werfen wir zunächst einen Blick auf die beiden Modelle


Wenn ob_start mehrmals einen neuen Puffer öffnet, wird die Datenstruktur als zweiter Typ erstellt, der verschachtelt ist. ob_get_level gibt die verschachtelte Ebene zurück.

Persönlich gesehen kann die Verschachtelung mit dem Streaming-Mechanismus von Java verglichen werden. Die Daten in einem Puffer werden an den nächsten Puffer ausgegeben, und dann können benutzerdefinierte Vorgänge an den Daten ausgeführt werden.

Wenn man sich nun den TP5-Quellcode ansieht, wird die Idee klarer. Wenn das System den Puffer initialisiert, löschen Sie ihn zuerst und öffnen Sie ihn dann erneut, da die Größe möglicherweise begrenzt ist. Die Größe des durch Ausführen von ob_start geöffneten Cache-Bereichs ist „groß genug“, aber es gibt keine spezifische Beschreibung, wie groß er ist. Ich weiß nur, dass die Daten, egal wie groß sie geschrieben werden, erst am Ende gesendet werden das Skript

4. Welche Vorteile bietet der Cache-Bereich?

PHP-Ausgabedaten werden einmal an den WebServer gesendet, was den Ressourcenverbrauch erhöht. Es ist besser, sie einheitlich im Speicher zu speichern, was effizienter ist.

Webanfragen enthalten HTTP-Header und es kann keine Ausgabe erfolgen, bevor die Header festgelegt sind. Der PHP-Puffer erledigt diese Arbeit für uns, indem er verschiedene Daten ausgibt, bevor er den Header sendet. Der Puffer sendet zunächst die Header-Informationen an WebSever und sendet dann die Datenpakete einheitlich.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo schließen Sie den Puffer 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate 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)

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.

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

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles