Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für einen verschachtelten PHP-Ausgabecache

Beispiel für einen verschachtelten PHP-Ausgabecache

*文
*文Original
2017-12-26 15:18:001126Durchsuche

Wie implementiert man verschachteltes Ausgabe-Caching in PHP? In diesem Artikel werden hauptsächlich verschachtelte PHP-Ausgabe-Caching-Codebeispiele vorgestellt und die ob-Reihenfunktionen verwendet, um verschachtelte Ausgabe-Caching-Beispiele zu lösen. Ich hoffe, es hilft allen.

Der Ausgabecache von PHP kann verschachtelt werden. Verwenden Sie ob_get_level(), um die Verschachtelungsebene auszugeben.
Der Test ergab, dass die Ausgabeergebnisse unter der CLI und dem Browser (PHP5.4) unterschiedlich sind.

Die manuellen Anweisungen lauten wie folgt:

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

Die korrekte Ausgabe ist auch sehr einfach:

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

Zurück zum Thema:

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;;

Die Ergebnisse sind wie folgt:

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

Wenn Sie eine bestimmte Pufferung ausschalten, testen Sie natürlich wie folgt:

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;;

Die Ergebnisse sind wie folgt:

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

Verwandte Empfehlungen:

PHP-Caching-Mechanismus

PHP-Caching-Tool Klasse implementiert Webseiten-Caching

thinkPHP-Caching-Mechanismus

Das obige ist der detaillierte Inhalt vonBeispiel für einen verschachtelten PHP-Ausgabecache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn