1

ディレクトリ内の画像を探すリダイレクト設定があり、存在しない場合は、画像のサイズを変更してそのディレクトリに保存するphpファイルにリダイレクトします。私はそれをうまく機能させました。問題は、書き込まれた画像が 4 時間前のものである場合に、それをリダイレクトする適切な方法を見つける必要があることです。Mod_expires を調べましたが、画像が 4 時間経過したときに、php 画像リサイザーにリダイレクトする方法が見つかりませんでした。

PHP でこれを実行できることはわかっていますが、要点は、PHP の代わりに apache を使用してサーバーの負荷を軽減することでした。私が取り組んでいるサイトは、毎日数千人の閲覧者を獲得しているため、サイズ変更された画像を効率的にキャッシュする必要があります。これが私がやっていることの例です...

  1. ブラウザは「http://images.mydomain.com/image/1234_01_thumb.jpg」を要求します
  2. Apache は「http://images.mydomain.com/image/1234_01_thumb.jpg」が存在するかどうかを確認します
  3. 存在しない場合は、「/image/resize_image.php」にリダイレクトし、「/images/」フォルダにサムネイルを生成します

「1234_01_thumb.jpg」がx時間経過したときに「/image/resize_image.php」にリダイレクトするにはどうすればよいですか?ある時点で、誰かがその写真を更新しなければならなくなります。特に間違った写真をアップロードした場合は、永続的ではありません。

助けてください。前もって感謝します!

4

2 に答える 2

1

http://php.net/manual/en/function.exif-read-data.php

ファイルの日付を取得して、現在の日付と照合することができますtime()

このようなことを言う:

$img_head = exif_read_data($img_path, 'IFD0');
if ($img_head != false) {
  if ($img_head['FILE.FileDateTime'] < (time() - 14400)) {
    header ("Location: old_image.php");
    exit;
  }
}

私が電話から入力しているときに、私がここで言おうとしていることをあなたが理解してくれることを本当に願っています...

于 2011-03-31T05:27:47.073 に答える
0

ええと、私が間違っていたら誰かが私を訂正してくれることを願っていますが、PHPがApacheのモジュールとして、を介して実行されていることを最後に知ったので、何らかのmod_php方法でWebサーバーがコードをチャーンする必要があります。

うーん。私の当初の考えは、次のようなものを使用してキャッシュ制御値を設定することでした。

<FilesMatch "\.(jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=14400, must-revalidate"
</FilesMatch>

しかし、それはうまくいきません。これは、Apacheに画像の新しいコピーを取得するように指示するだけです...

編集:

ええ、@ chris_mcclellanのアイデアは、私が思考プロセスのどこに向かっていたかということです。私はそれを実行して、それがあなたのパフォーマンス目標を満たしているかどうかを確認します。

于 2011-03-31T05:30:18.863 に答える