<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ------------------- 기존의 관련없는 내용 -------------------</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이것들은 기사의 내용과 관련이없는 것들입니다. PHP 출력 예제。\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">"현재 시간: <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">// ------------------- 텍스트를 시작하십시오 -------------------</span></span><span>
<span class="hljs-comment">/**
* 제목: PHP 가운데 ob_get_contents() 그리고 ob_start() 다층 둥지를 사용하는 방법?실용 기술 분석
*
* 존재하다 PHP 가운데,출력 버퍼링(Output Buffering)매우 유용한 기능입니다,它允许你존재하다脚本执行过程가운데
* 출력 컨텐츠 캡처,즉시 브라우저로 보내는 대신。`ob_start()` 그리고 `ob_get_contents()` 是출력 버퍼링
* 가운데最常用的函数。다른 부품의 출력을 제어하기 위해 다층 중첩 버퍼링이 필요한 경우,그들이 어떻게 작동하는지 이해하는 것이 특히 중요합니다。
*
* 1. ob_start() 의 역할
* --------------------
* `ob_start()` 启动一个新的출력 버퍼링区。나중에 모든 출력(좋다 echo、print)그들은이 버퍼에 캐시됩니다,
* 브라우저에 직접 출력하는 대신。
*
* 예:
*/</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">"이것은 첫 번째 레이어 버퍼의 내용입니다。"</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">// 현재 버퍼 컨텐츠를 얻으십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// 버퍼를 출력하고 종료합니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n수득 된 첫 번째 버퍼의 내용: <span class="hljs-subst">$content1</span></span></span><span>\n";
<span class="hljs-comment">/**
* 2. 다층 중첩 버퍼링
* ----------------
* 다층 둥지가 필요한 경우,여러 번 호출 할 수 있습니다 ob_start(),호출이 호출 될 때마다 새 버퍼가 생성됩니다.,스택 구조를 형성하십시오。
* 통과하다 ob_get_contents() 현재 버퍼의 내용을 얻을 수 있습니다,통과하다 ob_end_flush() 또는 ob_end_clean()
* 전류 버퍼를 종료 할 수 있습니다。
*
* 예:
*/</span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// 버퍼링의 첫 번째 층</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"첫 번째 레벨이 시작됩니다\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// 버퍼링의 두 번째 층</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"두 번째 레이어 컨텐츠\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">// 获取두 번째 레이어 컨텐츠</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// 清空버퍼링의 두 번째 층(출력이 없습니다)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"1 층은 계속됩니다\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">// 컨텐츠의 첫 번째 계층을 얻으십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// 输出버퍼링의 첫 번째 층区内容</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n두 번째 레이어에서 캡처 된 컨텐츠: <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">"첫 번째 층에서 캡처 된 컨텐츠: <span class="hljs-subst">$firstLayer</span></span></span><span>\n";
<span class="hljs-comment">/**
* 3. 실용적인 팁
* ------------
* - 지연된 출력:통과하다多层缓冲,먼저 콘텐츠를 처리 할 수 있습니다,수정 및 출력。
* - 템플릿 렌더링:존재하다渲染模板时,먼저 출력을 버퍼링 할 수 있습니다,进行变量替换또는缓存后再输出。
* - 벌채 반출:출력 컨텐츠 캡처到文件而不是直接输出。
*
* 주목해야 할 것:
* - 매번 ob_start() 모두 협력해야합니다 ob_end_flush() 또는 ob_end_clean()。
* - 중첩 된 층이 너무 많으면 메모리 오버 헤드가 증가 할 수 있습니다,실제 요구에 따라 사용하는 것이 좋습니다。
*
* 4. 综合예
*/</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 페이지 헤더\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>주제 내용</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">// 명확하지만 출력은 아닙니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<header>머리</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">// 再次输出주제 내용</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// 모두 출력</span></span><span>
</span><span><span class="hljs-comment">// ------------------- 텍스트의 끝 -------------------</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">// ------------------- 마지막에 내용이 없습니다 -------------------</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文章结束예:읽어 주셔서 감사합니다!\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>