PHPで「Last-Modified」を送信する

ページ情報
制作日
2004-01-25
最終更新日
2004-01-25
参照用URI
http://www.arielworks.net/articles/2004/0125b
分野

通常PHPの送信するHTTPレスポンスヘッダには「Last-Modified」が含まれない。しかし、ナビゲーションなど一部のみをPHPで作っている場合にはこれは不便だ。

Apacheのモジュール版PHPならば「php_flag last_modified on」を.htaccessなどに書けばスクリプトファイルの日付を送信してくれる(PHP4.3.4で確認)。

ただし、これだけだと「If-Modified-Since」には対応してくれない。モジュール版PHPでこれに対応するには『モジュール版PHPで「If-Modified-Since」に対応する』を参照のこと。

スクリプトが複数のファイルで成り立っていてリクエストされたファイルの日付のみでは最終更新日を判断できない場合は自力で「Last-Modified」ヘッダを送信することになる。$time_newestを構成ファイルの内最も新しい物のUNIXタイムスタンプだとすると、

header( "Last-Modified: " . gmdate( "D, d M Y H:i:s", $time_newest ) . " GMT" );

を本文を書き出す前に書いておけば「Last-Modified」ヘッダを送信できる。HTTP/1.1ではタイムゾーンはGMTで固定なのでgmdate()で日付を生成しているのに注意。

連絡先、リンク、転載や複製などについては「サイト案内」をご覧ください。Powered by HIMMEL