In PHP sind OB_Get_Length und OB_Get_Contents zwei häufig verwendete Funktionen für Ausgabepuffer, die verwendet werden, um Informationen über den aktuellen Ausgangspuffer zu erhalten. Obwohl diese beiden Funktionen in einigen Szenarien ein wenig ähnlich aussehen, sind ihre Funktionen und Verwendungen tatsächlich unterschiedlich. In diesem Artikel werden die Unterschiede zwischen diesen beiden Funktionen im Detail erläutert und ihre jeweiligen Nutzungsszenarien analysiert.
Die Funktion OB_Get_Contents () gibt den Inhalt des aktuellen Ausgabebufers zurück, dh alle Ausgabedaten im Puffer. Dies wird normalerweise verwendet, um den Inhalt des Ausgangspuffers für den Betrieb oder den Speicher vor dem Senden an den Browser zu erhalten. Diese Funktion gibt den ursprünglichen Ausgangsinhalt im Puffer zurück und löscht den Puffer nicht.
<span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// Starten Sie den Ausgangspuffer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$output</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>(); </span><span><span class="hljs-comment">// Holen Sie sich den Inhalt im Puffer</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// Schließen Sie den Puffer und löschen Sie den Puffer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$output</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe "Hello, World!"</span></span><span>
</span></span>
In diesem Beispiel erhält Ob_get_Contents () den Inhalt im Puffer, während OB_END_CLEAN () verwendet wird, um den Puffer zu schließen und die darin enthaltenen Daten zu löschen.
Die Funktion OB_Get_Length () gibt die Länge des aktuellen Ausgabebufferinhalts zurück, dh die Anzahl der Bytes im Puffer. Dies ist nützlich für Szenarien, in denen die Größe der Pufferbelegung bekannt sein muss, z.
<span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// Starten Sie den Ausgangspuffer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_length</span></span><span>(); </span><span><span class="hljs-comment">// Holen Sie sich die Länge des Pufferinhalts</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// Schließen Sie den Puffer und löschen Sie den Puffer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Length of output: "</span></span><span> . </span><span><span class="hljs-variable">$length</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe "Length of output: 13"</span></span><span>
</span></span>
In diesem Beispiel gibt Ob_Get_Length () die Anzahl der Bytes im Puffer zurück, und die Ausgabe ist 13, weil die Länge der "Hallo, Welt!" String ist 13.
Inhaltstyp zurückgeben :
OB_Get_Contents () gibt den tatsächlichen Inhalt (String -Typ) des Puffers zurück, und weitere Vorgänge können ausgeführt werden, z. B. Änderungen oder Speicher.
Ob_get_Length () gibt die Bytelänge des Inhalts im Puffer zurück, der normalerweise zur Bewertung der Größe des Ausgangs verwendet wird.
Anwendungsszenarien :
Wenn Sie den tatsächlichen Inhalt der Ausgabe bedienen oder anzeigen müssen, z. B. das Speichern in einer Protokolldatei oder das Ändern der Ausgabedaten, verwenden Sie OB_get_Contents () .
Wenn Sie sich nur um die Größe des Pufferinhalts kümmern oder einige Urteile basierend auf der Größe fällen müssen, können Sie ob_get_length () verwenden.
Leistungsüberlegungen :
Ob_get_Contents () erfordert das Extrahieren aller Inhalte des Puffers in Zeichenfolgen, was möglicherweise viel Speicher in Anspruch nehmen kann, insbesondere wenn der Ausgangsinhalt sehr groß ist.
Ob_get_Length () gibt nur die Größe des Puffers zurück, der weniger Ressourcen verbraucht.
OB_Get_Contents () wird verwendet, um den tatsächlichen Inhalt des Ausgangspuffers zu erhalten.
Ob_get_Length () wird verwendet, um die Bytelänge des Ausgabebufferinhalts zu erhalten.
Die Verwendung dieser beiden Funktionen ist unterschiedlich, und Entwickler können sie entsprechend ihren tatsächlichen Bedürfnissen verwenden. Für allgemeine Operationen für Ausgabeninhalte ist Ob_Get_Contents () eine häufig verwendete Funktion, und Ob_get_Length () ist eher für Situationen anwendbar, in denen die Puffergröße verstanden werden muss. In der tatsächlichen Entwicklung kann das Verständnis der Unterschiede zwischen beiden helfen, die Ausgabepuffer von PHP besser zu verwalten und die Flexibilität und Leistung der Programme zu verbessern.