Cet article vous propose principalement une méthode pour réaliser la statique de page à l'aide du mécanisme de cache ob de PHP. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.
Tout d'abord, introduisons 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érer le cache ob Le contenu de
ob_clean() efface le contenu du cache ob, mais ne ferme pas le cache
ob_end_clean() efface le contenu du cache ob 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 le contenu dans le cache de sortie à actualiser
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 avant la fonction header(), une erreur. se produira. Cependant, après avoir utilisé ob_start(), le contenu de la réponse sera d'abord placé dans le cache ob et aucun message ne sera envoyé à nouveau, ce qui résout le problème de l'erreur header() !
Parlons de la façon d'utiliser le mécanisme de cache ob fourni avec 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 :
Publiez-nous Le contenu interrogé est directement enregistré dans le fichier html. Si le fichier existe, il sera affiché. S'il n'existe pas, accédez à la base de données et exécutez le processus de requête correspondant
Si vous le souhaitez. pour définir le délai d'expiration du fichier, vous pouvez utiliser l'instruction if. Ajoutez une condition de jugement à l'intérieur pour juger si le fichier cache a expiré, time() - le délai d'expiration défini.
Recommandations associées :
Partage d'exemples de statique de page
Méthode d'implémentation statique de page ThinkPHP3.2.3
Plusieurs partages d'implémentation statique de pages PHP
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!