ホームページ >バックエンド開発 >PHPチュートリアル >PHP header() 出力画像キャッシュ_PHP チュートリアル
多くの開発では、画像を出力するために header("Content-type: image/jpeg"); を使用し、出力画像を作成するために何らかの PHP 画像処理技術を使用しようとします。よりインテリジェントでダイナミックに。しかし、別の URL 構造を指定し、サーバー テクノロジを使用して画像をキャッシュしない限り、これらの出力画像が大量のトラフィックを消費する可能性が高くなります。それらをキャッシュし、ユーザーが次回アクセスしたときにキャッシュを呼び出すにはどうすればよいでしょうか (前提として、この画像は変更しないでください)。
session_start(); header("キャッシュ制御: プライベート、max-age=10800、pre-check=10800"); header("プラグマ: プライベート"); header("有効期限: " . date(DATE_RFC822,strtotime(" 2 日"))); |
次に、既にキャッシュがあるかどうかを判断し、存在する場合はそのキャッシュを使用します。
状況 1: ブラウザーが現在のページを既にキャッシュしている場合は、それを直接使用します。
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){ // ブラウザにこの画像のキャッシュされたバージョンがある場合は、304 を送信します header('Last-Modified: '.$_SERVER['HTTP_IF_MODIFIED_SINCE'],true,304); 終了します; } |
コードは次のとおりです | |
$img = "some_image.png"; |
もちろん、考慮しなければならない特別な状況がいくつかありますが、基本的に上記のコードは私たちの思考を導くことができます。ちなみに、すべてヘッダー("Content-type: image/jpeg") より上に置くことを忘れないでください。
例を見てみましょう
コードは次のとおりです | |
//调整图片大小 |