PHPで画像を擬似的にキャッシュさせない方法

PHPで画像をブラウザにキャッシュさせない方法です。

参考url:
http://webtech-walker.com/archive/2007/03/07112848.html

Web上でフォームを用いて画像をアップする際などに、画像がブラウザにキャッシュされて、いちいちリロードしないと画像が切り替わらないで困った事はありませんか?

自分はあります。はい。そこで、調べました。

そうしたら、上記「Webtech Walker」さんで解決方法がありましたのでメモ。

対処法としては画像の名前の後にユニークなクエリ情報(urlの?以降の情報)を付け加えることです。

<img src="/sample.jpg?<?php echo time(); ?>” alt=”サンプル”>

出力:
<img src=”/sample.jpg?1173278322” alt=”サンプル”>

上記方法で擬似的にキャッシュされないように見せることができます。ブラウザがキャッシュしているかどうかは画像のURLで判断しているらしいので すが、クエリ情報もこの判断材料に含まれるので、画像の名前が同じでもクエリ情報が違っていれば画像を読みにいってくれるわけです。

キャッシュしなくても問題ないものならいいのですが、画像のサイズが大きい場合などキャッシュした方が良い場合もありますので使いすぎには注意が必要です。

PHPで画像をリサイズ(ImageMagickとimagick) サンプル編

PHPで画像を縮小(サムネイル化)する必要があったのでメモ。

インストール編はこちら

実際に画像をサムネイル化する簡単なサンプル。

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// 幅あるいは高さに 0 を指定すると、
// 元の画像のアスペクト比を維持します
$image->thumbnailImage(100, 0);

echo $image;

?>

参考はこちら:
http://jp.php.net/imagick

こちらも:
http://labs.unoh.net/2007/05/php_7.html

PHPで画像をリサイズ(ImageMagickとimagick) インストール編

PHPで画像を縮小(サムネイル化)する必要があったのでメモ。

サンプル編はこちら

まずは、PECLのimagickを使う為にインストール。

$ sudo pecl install imagick

すると、MagickWandのconfigが無いとかでエラー。。。
調べた結果、ImageMagick-develを入れると良いっぽい。
なので早速インストール。

$ sudo yum install ImageMagick-devel

develのインストールが完了したので、またpeclコマンド。

$ sudo pecl install imagick

今度は無事にインストール完了。
更に、iniファイルを作らなきゃダメみたいなので
imagick.iniファイルを新規作成。

$ sudo vi /etc/php.d/imagick.ini

extension=imagick.so

次に、apacheの再起動

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

最後に、phpinfo()で[imagick]の項目があれば完了!!