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
Il est également très simple de sortir correctement :
ob_end_clean(); echo ob_get_level(); //0
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 'level:'.$a.',ouput:'.$b.'<br>'; echo 'level:'.$c.',ouput:'.$d.'<br>'; echo 'level:'.$e.',ouput:'.$f.'<br>';
Les résultats sont les suivants :
level:1,ouput:php1 level:2,ouput:php2 level:3,ouput:php3
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 'php1'; $a = ob_get_level(); $b = ob_get_contents(); ob_clean(); ob_start(); echo 'php2'; $c = ob_get_level(); $d = ob_get_contents(); ob_end_clean(); //清空缓存并关闭缓存 ob_start(); echo 'php3'; $e = ob_get_level(); $f = ob_get_contents(); ob_clean(); echo 'level:'.$a.',ouput:'.$b.'<br>'; echo 'level:'.$c.',ouput:'.$d.'<br>'; echo 'level:'.$e.',ouput:'.$f.'<br>';
Les résultats sont les suivants :
level:1,ouput:php1 level:2,ouput:php2 level:2,ouput:php3
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!