Exemple de cache de sortie imbriqué PHP

*文
Libérer: 2023-03-18 14:48:01
original
1125 Les gens l'ont consulté

Comment implémenter la mise en cache de sortie imbriquée en PHP ? Cet article présente principalement des exemples de code de mise en cache de sortie imbriquée PHP et utilise les fonctions de la série ob pour résoudre des exemples de mise en cache de sortie imbriquée. J'espère que cela aide tout le monde.

Le cache de sortie de PHP peut être imbriqué. Utilisez ob_get_level() pour afficher le niveau d'imbrication.
Le test a révélé que les résultats de sortie sont différents sous la cli et le navigateur (PHP5.4).

Les instructions manuelles sont les suivantes :

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
Copier après la connexion

Il est également très simple de sortir correctement :

ob_end_clean();
echo ob_get_level(); //0
Copier après la connexion

Retour au sujet :

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;;
Copier après la connexion

Les résultats sont les suivants :

level:1,ouput:php1
level:2,ouput:php2
level:3,ouput:php3
Copier après la connexion

Bien sûr, lorsque vous désactivez un certain niveau de mise en mémoire tampon, testez comme suit :

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;;
Copier après la connexion

Les résultats sont les suivants :

level:1,ouput:php1
level:2,ouput:php2
level:2,ouput:php3
Copier après la connexion

Recommandations associées :

Mécanisme de mise en cache PHP

Outil de mise en cache PHP La classe implémente la mise en cache des pages Web

mécanisme de mise en cache thinkPHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal