ホームページ  >  記事  >  バックエンド開発  >  PHP でページ キャッシュを実装するにはどうすればよいですか?

PHP でページ キャッシュを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-21 08:06:352002ブラウズ

Web 開発において、ページ キャッシュは Web サイトのパフォーマンスとユーザー エクスペリエンスを大幅に向上させる重要なテクノロジです。 PHP ではページ キャッシュを実装する方法が多数ありますが、以下では一般的な方法のいくつかを紹介します。

1. ob_start() 関数を使用する

ob_start() 関数は、出力キャッシュを有効にするために PHP で使用される関数です。ページ出力をメモリにキャッシュし、リクエストの最後にキャッシュされたコンテンツをブラウザに出力します。 ob_start() 関数を使用すると、ページの出力コンテンツが一時的に表示されないようにすることができますが、最初にキャッシュし、後で必要になったときに出力します。

実装方法は次のとおりです。

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

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

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

ob_start() 関数を使用する場合は、次の点に特に注意する必要があります。

  1. ob_start() ) 関数はページの先頭で呼び出す必要があります。そうしないと、「ヘッダー情報を変更できません」というエラーがスローされます。
  2. 出力キャッシュはサーバーのメモリを占有するため、状況に応じてキャッシュサイズを適切に設定する必要があります。
  3. キャッシュはすぐには出力されません。出力キャッシュをブラウザに出力するには、ob_flush() 関数を使用する必要があります。

2. HTTP キャッシュの使用

HTTP キャッシュは、Web サービスでキャッシュを実装する標準的な方法であり、HTTP ヘッダーの Cache-Control と Expires を使用してキャッシュ時間と有効期限を制御します。キャッシング戦略。サーバーから返されたページ データがキャッシュされている場合、次回クライアントが同じページをリクエストしたときに、クライアントはサーバーに再度リクエストすることなく、ローカル キャッシュから直接データを読み取るため、ページのアクセス速度が大幅に向上します。 。

PHP では、応答ヘッダーに Cache-Control と Expires を設定することで HTTP キャッシュを実現できます。このうちCache-Controlはキャッシュの有効時間を示すmax-ageを秒単位で設定できます。 Expires は、指定した日付の GMT 時刻であるキャッシュの有効期限を設定します。

実装例:

<?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!';
?>

HTTP キャッシュでは、ブラウザーがページをキャッシュする前にバックエンド サーバーが応答ヘッダーを返す必要があるため、PHP ファイルで使用する必要があることに注意してください。 HTML ファイルでは使用できません。

3. ファイル キャッシュを使用する

ファイル キャッシュとは、ページをサーバー上のディスク ファイルにキャッシュすることです。ページが再度リクエストされると、ファイルは PHP による解析を行わずに直接読み込まれます。これにより、ページのアクセス速度が向上します。

実装は次のとおりです:

<?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;
?>

上記のコードでは、まずキャッシュ ファイルが存在するかどうか、およびキャッシュの有効期限が切れているかどうかを判断し、条件が満たされている場合はキャッシュの内容を取得します。ファイルはブラウザに直接出力されます。条件が満たされない場合、ページは通常の PHP ページ処理に従って出力され、出力キャッシュの内容がキャッシュ ファイルに書き込まれます。

特別な注意が必要なのは、ファイル キャッシュがサーバーのディスク領域を占有することです。キャッシュの有効期間を設定するか、スケジュールされたタスクを使用して、期限切れのキャッシュ ファイルを定期的にクリーンアップする必要があります。

要約すると、PHP ページ キャッシュを実装するには多くの方法があり、それぞれの方法に適用可能なシナリオ、長所と短所があります。実際の開発では、Webサイトのパフォーマンスやユーザーエクスペリエンスを向上させるために、実情に応じて柔軟に選択し、キャッシュ技術を合理的に利用する必要があります。

以上がPHP でページ キャッシュを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。