PHP에서 OB_GET_LENGTH 및 OB_GET_Contents는 현재 출력 버퍼에 대한 정보를 얻는 데 사용되는 두 가지 일반적으로 사용되는 출력 버퍼 기능입니다. 이 두 기능은 일부 시나리오에서는 약간 유사 해 보일 수 있지만 기능과 사용은 실제로 다릅니다. 이 기사는이 두 기능의 차이점을 자세히 설명하고 각각의 사용 시나리오를 분석합니다.
OB_GET_CONTENTS () 함수는 현재 출력 버퍼의 내용, 즉 버퍼의 모든 출력 데이터를 반환합니다. 이는 일반적으로 브라우저로 전송되기 전에 작동 또는 스토리지에 대한 출력 버퍼의 내용을 얻는 데 사용됩니다. 이 함수는 버퍼에서 원래 출력 컨텐츠를 반환하고 버퍼를 지우지 않습니다.
<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">"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">// 버퍼에서 내용을 가져옵니다</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-variable">$output</span></span><span>; </span><span><span class="hljs-comment">// 산출 "Hello, World!"</span></span><span>
</span></span>
이 예에서는 OB_GET_CONTENTS ()가 버퍼의 내용을 가져 오는 반면 OB_END_CLEAN ()은 버퍼를 닫고 데이터를 지우는 데 사용됩니다.
OB_GET_LENGTH () 함수는 현재 출력 버퍼 컨텐츠의 길이, 즉 버퍼의 바이트 수를 반환합니다. 이는 일부 성능 최적화 시나리오와 같이 버퍼 점유 크기를 알고 있어야하거나 출력 크기에 따라 추가 작업을 결정 해야하는 시나리오에 유용합니다.
<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">"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">// 버퍼 컨텐츠의 길이를 얻으십시오</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">"Length of output: "</span></span><span> . </span><span><span class="hljs-variable">$length</span></span><span>; </span><span><span class="hljs-comment">// 산출 "Length of output: 13"</span></span><span>
</span></span>
이 예에서는 OB_GET_LENGTH ()가 버퍼의 바이트 수를 반환하고 "Hello, World!"의 길이 때문에 출력은 13입니다. 문자열은 13입니다.
반환 컨텐츠 유형 :
OB_GET_CONTENTS () 버퍼의 실제 내용 (문자열 유형)을 반환하고 수정 또는 스토리지와 같은 추가 작업을 수행 할 수 있습니다.
OB_GET_LENGTH ()는 버퍼의 컨텐츠의 바이트 길이를 반환하며, 이는 일반적으로 출력의 크기를 평가하는 데 사용됩니다.
응용 프로그램 시나리오 :
로그 파일에 저장하거나 출력 데이터 수정과 같은 출력의 실제 컨텐츠를 작동하거나보아야하는 경우 OB_GET_CONTENTS ()를 사용하십시오.
버퍼 컨텐츠의 크기에만 관심이 있거나 크기에 따라 일부 판단을 해야하는 경우 OB_GET_LENGTH ()를 사용할 수 있습니다.
성능 고려 사항 :
OB_GET_CONTENTS ()는 버퍼의 모든 내용을 문자열로 추출해야하며, 특히 출력 내용이 매우 큰 경우 많은 메모리를 차지할 수 있습니다.
ob_get_length ()는 버퍼의 크기 만 반환하여 리소스가 적습니다.
OB_GET_CONTENTS ()는 출력 버퍼의 실제 컨텐츠를 얻는 데 사용됩니다.
OB_GET_LENGTH ()는 출력 버퍼 컨텐츠의 바이트 길이를 얻는 데 사용됩니다.
이 두 기능의 사용은 다르며 개발자는 실제 요구에 따라 사용하도록 선택할 수 있습니다. 일반적인 출력 컨텐츠 작업의 경우 OB_GET_CONTENTS ()는 보다 일반적으로 사용되는 기능이며 OB_GET_LENGTH ()는 버퍼 크기를 이해해야하는 상황에 더 적용 할 수 있습니다. 실제 개발에서, 둘 사이의 차이를 이해하면 PHP의 출력 버퍼를 더 잘 관리하고 프로그램 유연성과 성능을 향상시키는 데 도움이 될 수 있습니다.