Explication détaillée de la façon dont le mécanisme de cache ob de PHP implémente la statique de page

墨辰丷
Libérer: 2023-03-26 22:06:02
original
1473 Les gens l'ont consulté

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[&#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());


?>
Copier après la connexion

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

le ob cache de 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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!