Maison  >  Article  >  développement back-end  >  Le mécanisme de mise en cache de PHP réalise le partage de code statique de page

Le mécanisme de mise en cache de PHP réalise le partage de code statique de page

小云云
小云云original
2018-02-08 09:51:301495parcourir

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[&#39;id&#39;];
    
    //判断缓存文件是否存在,如果存在,直接输出
    if(file_exists(&#39;content&#39;.$id.&#39;.html&#39;)){
      echo file_get_contents(&#39;content&#39;.$id.&#39;.html&#39;);
      return;
    }
    
    //开启缓存机制
    ob_start();
    
    //到数据库中查询所需要的内容
    $conn=mysql_connect("localhost","root","root");
    mysql_select(&#39;db&#39;);
    mysql_query(&#39;set names utf8&#39;);
    
    $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(&#39;content&#39;.$id.&#39;.html&#39;,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!

Déclaration:
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