Maison >développement back-end >tutoriel php >Explication détaillée de la façon dont le mécanisme de cache ob de PHP implémente la statique de page
Cet article présente principalement la méthode de statique de la page à l'aide du mécanisme de cache ob de PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Introduisez d'abord quelques fonctions courantes couramment utilisées dans le cache ob en php
ob_start() : activez le mécanisme de mise en cache
ob_get_contents() : Récupère le contenu du cache ob
ob_clean() Efface le contenu du cache ob, mais ne ferme pas le cache
ob_end_clean() Efface le contenu du cache ob cache et ferme le cache
ob_flush efface le cache, affiche le contenu, mais ne ferme pas le cache
ob_end_flush efface le cache, affiche le contenu et ferme le cache
flush force un rafraîchissement du contenu dans le cache de sortie
Selon les dispositions du protocole http, le contenu de la réponse ne peut pas être affiché avant l'en-tête de réponse. Par conséquent, s'il y a une sortie de contenu devant l'en-tête. (), une erreur se produira. Cependant, après avoir utilisé ob_start(), le contenu de la réponse sera mis en premier dans le cache ob, l'en-tête du message ne sera pas envoyé avant son envoi, ce qui résout le problème de header(). erreur!
Parlons de la façon d'utiliser le propre mécanisme de cache ob de PHP pour réaliser la statique de page. L'exemple de code est le suivant
<.><?php $id=$_REQUEST['id']; //判断缓存文件是否存在,如果存在,直接输出 if(file_exists('content'.$id.'.html')){ echo file_get_contents('content'.$id.'.html'); return; } //开启缓存机制 ob_start(); //到数据库中查询所需要的内容 $conn=mysql_connect("localhost","root","root"); mysql_select('db'); mysql_query('set names utf8'); $sql="select content from table_name where id=$id"; $res=mysql_query($sql); $row=mysql_fetch_assoc($res); $content=$row[0]; mysql_free_result($res); mysql_close($conn); echo $content; //将输出的内容保存到文件中,形成静态页面,在下次访问的时候,直接读取输出 file_put_contents('content'.$id.'.html',ob_get_contents()); ?>Comme indiqué dans le code ci-dessus : Enregistrez le contenu que nous interrogeons directement dans le fichier html. Si le fichier existe, affichez-le. S'il n'existe pas, accédez-y. la base de données. , exécutez le processus de requête correspondant Si vous souhaitez définir l'heure d'expiration du fichier, vous pouvez ajouter une condition de jugement dans l'instruction if pour déterminer si le fichier mis en cache a expiré, time () - le délai d'expiration défini L'article ci-dessus utilise le mécanisme de cache ob de PHP pour réaliser la statique de la page. C'est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence. Recommandations associées :
Analyse de la façon dont PHP utilise le mécanisme de ob cache pour obtenir des solutions statiques de page
php ob cacheIntroduction et explication détaillée de la fonction ob
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!