<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ------------------- Bereits bestehender irrelevanter Inhalt -------------------</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dies sind einige Dinge, die nicht mit dem Inhalt des Artikels zusammenhängen PHP Ausgangsbeispiel。\n"</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktuelle Zeit: <span class="hljs-subst">$time</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ------------------- Starten Sie den Text -------------------</span></span><span>
<span class="hljs-comment">/**
* Titel: PHP Mitte ob_get_contents() Und ob_start() So verwenden Sie mehrschichtige Verschachtelung?Analyse der praktischen Fähigkeiten
*
* existieren PHP Mitte,Ausgangspufferung(Output Buffering)Es ist eine sehr nützliche Funktion,它允许你existieren脚本执行过程Mitte
* Ausgangsinhalt erfassen,Anstatt es sofort an den Browser zu senden。`ob_start()` Und `ob_get_contents()` 是Ausgangspufferung
* Mitte最常用的函数。Wenn Sie mehrschichtige Pufferungen benötigen, um die Ausgabe verschiedener Teile zu steuern,Es ist besonders wichtig zu verstehen, wie sie funktionieren。
*
* 1. ob_start() Die Rolle von
* --------------------
* `ob_start()` 启动一个新的Ausgangspufferung区。Alle Ausgänge danach(wie echo、print)Sie werden in diesen Puffer zwischengespeichert,
* Anstatt es direkt an den Browser auszugeben。
*
* Beispiel:
*/</span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dies ist der Inhalt des ersten Schichtpuffer。"</span></span><span>;
</span><span><span class="hljs-variable">$content1</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 aktuellen Pufferinhalt</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// Ausgabe und beenden Sie den Puffer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nDer Inhalt des ersten Puffer: <span class="hljs-subst">$content1</span></span></span><span>\n";
<span class="hljs-comment">/**
* 2. Mehrschichtige verschachtelte Pufferung
* ----------------
* Wenn mehrschichtige Verschachteln erforderlich sind,Kann mehrmals aufgerufen werden ob_start(),Jedes Mal, wenn der Anruf aufgerufen wird, wird ein neuer Puffer erstellt,Eine Stapelstruktur bilden。
* passieren ob_get_contents() Sie können den Inhalt des aktuellen Puffer erhalten,passieren ob_end_flush() oder ob_end_clean()
* Kann den aktuellen Puffer beenden。
*
* Beispiel:
*/</span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// Erste Schicht der Pufferung</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die erste Ebene beginnt\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// Zweite Pufferschicht</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Inhalt der zweiten Ebene\n"</span></span><span>;
</span><span><span class="hljs-variable">$secondLayer</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>(); </span><span><span class="hljs-comment">// 获取Inhalt der zweiten Ebene</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// 清空Zweite Pufferschicht(Keine Ausgabe)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der erste Stock geht weiter\n"</span></span><span>;
</span><span><span class="hljs-variable">$firstLayer</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 die erste Inhaltsebene</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// 输出Erste Schicht der Pufferung区内容</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nInhalt in der zweiten Schicht erfasst: <span class="hljs-subst">$secondLayer</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Inhalt in der ersten Ebene erfasst: <span class="hljs-subst">$firstLayer</span></span></span><span>\n";
<span class="hljs-comment">/**
* 3. Praktische Tipps
* ------------
* - Verzögerte Ausgabe:passieren多层缓冲,Sie können den Inhalt zuerst verarbeiten,Ändern und Ausgabe。
* - Vorlagewiedergabe:existieren渲染模板时,Sie können zuerst die Ausgabe pufferen,进行变量替换oder缓存后再输出。
* - Protokollierung:Ausgangsinhalt erfassen到文件而不是直接输出。
*
* Dinge zu beachten:
* - Jedes Mal ob_start() Alle müssen kooperieren ob_end_flush() oder ob_end_clean()。
* - Zu viele verschachtelte Schichten können den Speicheraufwand erhöhen,Es wird empfohlen, den tatsächlichen Bedarf zu verwenden。
*
* 4. 综合Beispiel
*/</span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"HTML Seitenkopfzeile\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>Betreff Inhalt</p>\n"</span></span><span>;
</span><span><span class="hljs-variable">$bodyContent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// Klar, aber nicht ausgeben</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<header>Kopf</header>\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$bodyContent</span></span><span>; </span><span><span class="hljs-comment">// 再次输出Betreff Inhalt</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// Alle ausgeben</span></span><span>
</span><span><span class="hljs-comment">// ------------------- Ende des Textes -------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ------------------- Kein Inhalt am Ende -------------------</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文章结束Beispiel:Danke fürs Lesen!\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>