Maison  >  Article  >  développement back-end  >  Comment implémenter le code de mise en cache statique des pages en php

Comment implémenter le code de mise en cache statique des pages en php

PHPz
PHPzoriginal
2023-04-05 10:30:27557parcourir

PHP est un langage de script populaire utilisé pour créer des pages Web dynamiques et traiter les données de formulaires. Dans de nombreux cas, le code PHP doit effectuer un certain nombre de calculs et de traitements de données pour générer le contenu dynamique d'une page Web. Cette page Web générée dynamiquement doit recalculer les données de la page lorsque l'utilisateur accède à la même page, ce qui allonge le temps de chargement de la page Web et affecte l'expérience utilisateur. Pour résoudre ce problème, la technologie de mise en cache statique des pages peut être utilisée.

La mise en cache statique des pages fait référence à la mise en cache de pages Web générées dynamiquement afin que le contenu mis en cache puisse être directement renvoyé lors de visites ultérieures sans avoir à effectuer de calculs ni d'opérations de traitement de données. Cela peut considérablement améliorer la vitesse de réponse des pages Web et réduire la charge du serveur et l'utilisation de la bande passante du réseau. Il existe de nombreuses façons d'implémenter la mise en cache statique des pages en PHP. Voici l'une des méthodes d'implémentation simples.

Première étape : déterminer si le cache existe

Dans le code PHP, vous pouvez juger si un fichier doit être régénéré en fonction de l'heure de modification du fichier. Si le fichier existe déjà et que l'heure de modification se situe dans une certaine plage horaire, le contenu mis en cache peut être lu directement, sinon le cache doit être régénéré. Voici le code permettant de déterminer si le cache existe :

$cache_file = 'cache.html'; // 缓存文件名
$expiry = time() - 60 * 60; // 缓存过期时间,这里设置为1小时前
if (file_exists($cache_file) && filemtime($cache_file) > $expiry) {
    // 直接读取缓存文件内容
    readfile($cache_file);
    exit();
}

Le code ci-dessus définit d'abord le nom du fichier cache comme cache.html, puis définit le délai d'expiration du cache sur 1 heure. Ensuite, utilisez la fonction file_exists() pour vérifier si le fichier cache existe. S'il existe, obtenez l'heure de modification du fichier via la fonction filemtime() et comparez si l'heure est dans le délai d'expiration spécifié. Si les conditions sont remplies, le contenu du fichier cache est directement lu et affiché dans le navigateur et l'exécution du programme se termine.

Étape 2 : Générer le contenu du cache

Si le cache n'existe pas ou a expiré, vous devez générer un nouveau contenu du cache. Le processus de génération d'un cache peut consister à appeler d'autres fonctions ou à effectuer des requêtes de base de données, ou à enregistrer le code HTML de pages Web dynamiques dans un fichier. Voici un exemple de génération de contenu en cache :

// 生成新的缓存内容
ob_start(); // 开始输出缓冲
// 在这里写你的动态内容生成代码
echo '<h1>Welcome to my website!</h1>';
// 结束输出缓冲,获取缓冲区的内容
$content = ob_get_clean();
// 把缓冲区的内容保存到缓存文件中
file_put_contents($cache_file, $content);
// 输出缓存内容到浏览器并结束程序执行
echo $content;
exit();

Le code ci-dessus utilise les fonctions de mise en mémoire tampon de sortie de PHP ob_start() et ob_get_clean(). Après avoir appelé la fonction ob_start(), tout le contenu de sortie sera mis en cache en mémoire. Le cache ne sera pas vidé tant que la fonction ob_get_clean() ne sera pas appelée pour obtenir les données mises en cache. De cette façon, nous pouvons écrire le code HTML de la page Web dynamique entre ob_start() et ob_get_clean(), l'enregistrer dans la variable $content, puis enregistrer le contenu dans la variable $content en tant que fichier cache. Enfin, le contenu de la variable $content est affiché dans le navigateur et l'exécution du programme se termine. L'utilisateur verra le code HTML mis en cache généré.

Étape 3 : Code complet

Ce qui précède est un exemple d'implémentation simple de la mise en cache statique de page. Voici le code complet :

// 缓存文件名
$cache_file = 'cache.html';
// 缓存过期时间,这里设置为1小时前
$expiry = time() - 60 * 60;
// 判断缓存是否存在
if (file_exists($cache_file) && filemtime($cache_file) > $expiry) {
    // 直接读取缓存文件内容
    readfile($cache_file);
    exit();
} else {
    // 开始输出缓冲
    ob_start();
    // 在这里写你的动态内容生成代码
    echo '<h1>Welcome to my website!</h1>';
    // 结束输出缓冲,获取缓冲区的内容
    $content = ob_get_clean();
    // 把缓冲区的内容保存到缓存文件中
    file_put_contents($cache_file, $content);
    // 输出缓存内容到浏览器并结束程序执行
    echo $content;
    exit();
}

Dans le code ci-dessus, l'instruction if est utilisée pour déterminer si le fichier cache existe. il existe et l'heure de modification expire, lisez directement le contenu du fichier cache et affichez-le dans le navigateur. Sinon, appelez la fonction ob_start() pour démarrer le tampon de sortie, écrivez le code de génération de contenu de la page Web dynamique, obtenez le contenu du cache via la fonction ob_get_clean() et enregistrez-le dans la variable $content, puis appelez file_put_contents( ) fonction pour enregistrer le contenu de la variable $content dans le fichier cache. Enfin, le contenu de la variable $content est affiché dans le navigateur et l'exécution du programme se termine.

Résumé

La technologie de mise en cache statique des pages peut améliorer considérablement la vitesse de réponse et l'expérience utilisateur des pages Web, réduire la charge du serveur et l'utilisation de la bande passante du réseau. Il existe de nombreuses façons d'implémenter la mise en cache statique des pages en PHP. Nous pouvons réduire le calcul et le traitement des pages dynamiques en déterminant si les fichiers de cache existent et n'ont pas expiré, et améliorer l'efficacité en générant des caches de fichiers HTML statiques.

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