学級日誌番外 (ホームページ作成ノウハウ集)
>>> 学級日誌番外トップ
19.CGIでファイルの最終更新日を取得するには (2012年9月1日)
- ◎環境
- ・独自 CGI が利用可能なこと
- ◎解説
- Webサーバーに設置しているファイルの最終更新日を知りたいことがある。「マサのWeb玉手箱」では、掲示板データファイルの更新日を取得することにより、最終書き込みが行われた日付の表示を実現している。CGIでのポイントは2つあり、1つは stat関数によるファイルの最終更新時刻取得、そしてもう1つは localtime関数によるローカル時間への変換。これらにより求められた日時を、JavaScriptの文字列を表示する関数としてファイルに書き出している。HTML側では、表示したい場所に先ほどのJavaScript関数を配置する。
(1)CGI を用いて最終更新日表示用 JavaScript を生成する | |
# JavaScript書き込みファイルを指定 # (HTMLのヘッダーで読み込むファイル) $datafile = "getdate.js"; # 最終更新日を取得するファイルのパスを指定 $file = "bbs.dat"; # stat関数の9番目の要素で最終更新時刻取得 $modtime = (stat($file))[9]; # localtime関数で読みやすい表記に変更 ($sec, $min, $hour, $mday, $mon, $year) = localtime($modtime); # 年と月を補正 $year = $year + 1900; $mon = $mon + 1; # データ書き込み open(DATA, ">$datafile") || die "データファイルが開けませんでした。"; print DATA << "EOF"; function printgetdate(){ document.write("$year/$mon/$mday $hour:$min"); } EOF close(DATA); |
|
(2)ページの表示したい部分に JavaScript関数を埋め込む | |
<a href="bbs.html">掲示板</a> <script type="text/javascript"> printgetdate(); </script>更新 |
|
完成画面 |
>>> マサがお勧めするCGIの本 (by Amazon.co.jp)