>  기사  >  백엔드 개발  >  PHP 중첩 출력 캐시 예

PHP 중첩 출력 캐시 예

*文
*文원래의
2017-12-26 15:18:001067검색

PHP에서 중첩 출력 캐싱을 구현하는 방법은 무엇입니까? 이 기사에서는 주로 PHP 중첩 출력 캐싱 코드 예제를 소개하고 ob 시리즈 함수를 사용하여 중첩 출력 캐싱 예제를 해결합니다. 그것이 모두에게 도움이 되기를 바랍니다.

PHP의 출력 캐시는 중첩될 수 있습니다. 중첩 수준을 출력하려면 ob_get_level()을 사용하십시오.
테스트 결과 cli와 브라우저(PHP5.4)에서 출력 결과가 다른 것으로 나타났습니다.

수동 지침은 다음과 같습니다.

ob_get_level() will always return 0 inside a destructor. 
This happens because the garbage collection for output buffers has already done before the destructor is called

올바른 출력을 원하는 것도 매우 간단합니다.

ob_end_clean();
echo ob_get_level(); //0

주제로 돌아가기:

ob_end_clean();
 
ob_start();
echo 'php1';//此处并不会在页面中输出
$a = ob_get_level();
$b = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
 
ob_start();
echo 'php2';//此处并不会在页面中输出
$c = ob_get_level();
$d = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
 
ob_start();
echo 'php3';//此处并不会在页面中输出
$e = ob_get_level();
$f = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
 
echo &#39;level:&#39;.$a.&#39;,ouput:&#39;.$b.&#39;<br>&#39;;
echo &#39;level:&#39;.$c.&#39;,ouput:&#39;.$d.&#39;<br>&#39;;
echo &#39;level:&#39;.$e.&#39;,ouput:&#39;.$f.&#39;<br>&#39;;

결과는 다음과 같습니다.

level:1,ouput:php1
level:2,ouput:php2
level:3,ouput:php3

물론, 일정 수준의 버퍼링을 끄고 다음과 같이 테스트하세요.

ob_end_clean();
 
ob_start();
echo &#39;php1&#39;;
$a = ob_get_level();
$b = ob_get_contents();
ob_clean();
 
ob_start();
echo &#39;php2&#39;;
$c = ob_get_level();
$d = ob_get_contents();
ob_end_clean();  //清空缓存并关闭缓存
 
ob_start();
echo &#39;php3&#39;;
$e = ob_get_level();
$f = ob_get_contents();
ob_clean();
 
echo &#39;level:&#39;.$a.&#39;,ouput:&#39;.$b.&#39;<br>&#39;;
echo &#39;level:&#39;.$c.&#39;,ouput:&#39;.$d.&#39;<br>&#39;;
echo &#39;level:&#39;.$e.&#39;,ouput:&#39;.$f.&#39;<br>&#39;;

결과는 다음과 같습니다.

level:1,ouput:php1
level:2,ouput:php2
level:2,ouput:php3

관련 권장 사항:

PHP 캐싱 메커니즘

웹을 구현하기 위한 PHP 캐싱 도구 클래스 페이지 캐싱

thinkPHP 캐싱 메커니즘

위 내용은 PHP 중첩 출력 캐시 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.