Maison  >  Article  >  développement back-end  >  Comment implémenter la mise en cache des pages en PHP ?

Comment implémenter la mise en cache des pages en PHP ?

WBOY
WBOYoriginal
2023-06-21 08:06:352170parcourir

Dans le développement Web, la mise en cache des pages est une technologie importante qui peut considérablement améliorer les performances du site Web et l'expérience utilisateur. En PHP, il existe de nombreuses façons d'implémenter la mise en cache des pages. Ce qui suit présente quelques-unes des plus courantes.

1. Utilisez la fonction ob_start()

La fonction ob_start() est une fonction utilisée en PHP pour activer la mise en cache de sortie. Il met en cache la sortie de la page dans la mémoire, puis envoie le contenu mis en cache au navigateur à la fin de la requête. L'utilisation de la fonction ob_start() peut empêcher l'affichage temporaire du contenu de sortie de la page, mais mettez-le d'abord en cache, puis affichez-le lorsque cela est nécessaire ultérieurement.

L'implémentation est la suivante :

<?php
// 开启输出缓存
ob_start();

// 这里书写正常的PHP页面代码
echo 'Hello World!';

// 将缓存的内容输出到浏览器
ob_flush();
?>

Vous devez porter une attention particulière aux points suivants lorsque vous utilisez la fonction ob_start() :

  1. La fonction ob_start() doit être appelée au tout début de la page, sinon le L'erreur "Impossible de modifier les informations d'en-tête" sera générée.
  2. Le cache de sortie occupera la mémoire du serveur et la taille du cache doit être définie de manière appropriée en fonction de la situation.
  3. Le cache ne sera pas affiché immédiatement. Vous devez utiliser la fonction ob_flush() pour afficher le cache de sortie vers le navigateur.

2. Utiliser la mise en cache HTTP

La mise en cache HTTP est un moyen standard d'implémenter la mise en cache dans les services Web. Elle utilise Cache-Control et Expires dans l'en-tête HTTP pour contrôler la durée du cache et la stratégie de cache. Si les données de la page renvoyées par le serveur sont mises en cache, la prochaine fois que le client demandera la même page, le client lira les données directement depuis le cache local sans avoir à redemander au serveur, ce qui peut grandement améliorer la vitesse d'accès de la page. .

En PHP, la mise en cache HTTP peut être réalisée en définissant Cache-Control et Expires dans l'en-tête de réponse. Parmi eux, Cache-Control peut définir l'âge maximum, qui indique la durée effective du cache, en secondes. Expires définit le délai d'expiration du cache, qui correspond à l'heure GMT d'une date spécifiée.

Exemple d'implémentation :

<?php
// 设置缓存时间,如下设置了缓存10分钟
header('Cache-Control: max-age=600');

// 设置缓存过期时间,如下设置了缓存到2022年1月1日
header('Expires: Sun, 01 Jan 2022 00:00:00 GMT');

// 这里书写正常的PHP页面代码
echo 'Hello World!';
?>

Il convient de noter que la mise en cache HTTP nécessite que le serveur backend renvoie un en-tête de réponse avant que le navigateur puisse mettre la page en cache, il doit donc être utilisé dans les fichiers PHP et ne peut pas être utilisé dans les fichiers HTML.

3. Utiliser la mise en cache de fichiers

La mise en cache de fichiers consiste à mettre la page en cache dans un fichier disque sur le serveur. Lorsque la page est à nouveau demandée, le fichier est lu directement sans analyse par PHP, ce qui peut améliorer la vitesse d'accès de la page. .

L'implémentation est la suivante :

<?php
// 设置缓存文件名
$cacheFile = 'cache.html';
// 设置缓存时间,如下设置了缓存30分钟
$cacheTime = 1800;

// 如果缓存文件存在并且缓存未过期
if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $cacheTime)) {
    // 直接读取缓存文件内容
    echo file_get_contents($cacheFile);
    exit();
}

// 开启输出缓存
ob_start();

// 这里书写正常的PHP页面代码
echo 'Hello World!';

// 获取输出缓存并清空缓存
$content = ob_get_clean();

// 把输出缓存写入到缓存文件中
file_put_contents($cacheFile, $content);

// 输出内容到浏览器
echo $content;
?>

Dans le code ci-dessus, nous déterminons d'abord si le fichier cache existe et si le cache a expiré. Si les conditions sont remplies, le contenu du fichier cache est directement envoyé au navigateur. Si les conditions ne sont pas remplies, la page sera affichée selon le processus de page PHP normal et le contenu du cache de sortie sera écrit dans le fichier cache.

Une chose qui nécessite une attention particulière est que la mise en cache des fichiers occupera l'espace disque du serveur. Vous devez définir une période de validité du cache ou utiliser des tâches planifiées pour nettoyer régulièrement les fichiers de cache expirés.

Pour résumer, il existe de nombreuses façons d'implémenter la mise en cache des pages PHP, et chaque méthode a ses scénarios applicables, ses avantages et ses inconvénients. Dans le développement actuel, il est nécessaire de faire des choix flexibles basés sur les conditions réelles et d'utiliser la technologie de mise en cache de manière rationnelle pour améliorer les performances du site Web et l'expérience utilisateur.

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