ホームページ  >  記事  >  バックエンド開発  >  PHPで画像キャッシュファイル形式を防ぐ方法

PHPで画像キャッシュファイル形式を防ぐ方法

PHPz
PHPzオリジナル
2023-04-12 15:06:32720ブラウズ

PHP は、Web アプリケーション用の PHP コードを作成し、サーバー上で実行できるようにする、広く使用されているサーバーサイド スクリプト言語です。 PHP では、ブラウザで Web サイトを開いたときに、画像が更新されなかったり、変更が非常に遅くなったりするなど、画像のキャッシュに関連する問題が発生することがあります。これは通常、ブラウザまたはサーバーのキャッシュ画像が原因で発生します。したがって、この記事では、PHP で画像をキャッシュフリーのファイル形式にする方法を紹介します。

  1. ブラウザに画像をキャッシュしないように強制する

デフォルトでは、ブラウザはダウンロードされた画像をキャッシュするため、アクセスが高速化されますが、いくつかの問題も発生します。 PHP では、header() 関数を使用して Cache-Control を設定することでブラウザのキャッシュ時間を制御できます。例:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate"); //强制浏览器不缓存
header("Expires: 0"); //指定过期时间为0
?>

このようにして、サーバーが画像を返すと、この画像をキャッシュせず、毎回サーバーから最新の画像をダウンロードするようにブラウザに指示する HTTP 応答ヘッダーを設定します。

  1. 画像の URL にランダムな文字列を追加します

この方法は、URL にランダムな文字列を追加することで、ブラウザにランダムな文字列であると思わせる方法です。画像の新しい画像 最新の画像をダウンロードします。ランダムな文字列には、タイムスタンプ、UUID、または乱数を使用できます。例:

<?php
$img_url = &#39;http://example.com/images/logo.png?rand=&#39; . uniqid(); //在图片URL中添加一个唯一标识符
echo &#39;<img src="&#39; . $img_url . &#39;">';
?>

この例では、URL の後に乱数を追加することで、画像が読み込まれるたびに新しい画像がダウンロードされます。

  1. 画像をサーバー上でキャッシュ不可に設定する

最後の方法は、画像をサーバー上でキャッシュ不可に設定することです。 Apache サーバーでは、次のコードを .htaccess ファイルに追加することで画像のキャッシュをキャンセルできます:

<FilesMatch "\.(jpg|png|gif)$">
  Header set Cache-Control "max-age=0, no-store"
</FilesMatch>

このコードは、.jpg、.png、.gif ファイルとセットに対してのみ有効であることを意味します。応答ヘッダー。Cache-Control は「max-age=0、no-store」です。これにより、ブラウザは毎回サーバーから最新のイメージをダウンロードするようになります。

概要

HTTP 応答ヘッダーを変更したり、URL にランダムなパラメーターを追加したり、サーバー上で応答ヘッダーを設定したりすることで、PHP の画像にキャッシュされたファイル形式を持たせることができます。これにより、どのブラウザを使用しても最新の画像を表示できるようになり、ユーザーのエクスペリエンスが向上します。

以上がPHPで画像キャッシュファイル形式を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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