[ CGI集 | CGI解説 | Perl解説 | HTML解説 | LinuxMemo | Q&A | QuizLink ]      

更新日時取得CGI T-Updated Ver.1.00 説明書

about...

機能

 SSIを使っての最終更新時刻の表示は簡単にできますが、SSIが使えないサーバー用にCGIを使って同じような仕組みを作ってみました。時刻を表示させるところ以外は普通のHTMLと同じように記述できますので、表示のカスタマイズも自由自在です。

[目次へ]

ソース

(ダウンロード後、ファイル名が"-cgi.txt","-html.txt"となってるものを".cgi",".html"に変更してください)

全ファイルをまとめてダウンロード 〜 updated100.lzh

プログラム

[目次へ]

インストール方法

インストール

  1. ソースからtupdated.cgitp.htmlをダウンロードして下さい。
    ※ ダウンロード方法はソースをダウンロードするを参照。

  2. tupdated.cgi最上部のPerlのパスを正しく設定してください。
    ※ 詳しくはPerlのパスを設定するを参照。

  3. tupdated.cgiの上部にある「変数設定部」の以下の変数を編集してください。

    • $tpfile ..... tp.htmlへのフルパス(※注1)
    • $htmlfile ..... 出力先ファイルのフルパス
    • $page ..... 出力先ファイル(↑)のURL (フルパスとの違いに気を付けて下さい)
    • $files{'<ID>'} ..... 更新時刻を表示させたいファイルへのパス。<ID>の部分は適当な英数字の組み合わせ。(※注2)

      ※注1 プログラムと同じ場所に置く場合は $tpfile = "./tp.html";のままで。
      ※注2 <ID>は各ファイルに対応した覚えやすい名前をつけると後でテンプレートを編集するとき楽です。(例えば、トップページだったら「top」、リンク集なら「link」など。)複数ファイルの更新時刻を取りたい場合は、以下のように続けて書きます。

      $files{'top'} = "/usr/home/hoge/public_html/index.html";
      $files{'link'} = "/usr/home/hoge/public_html/link.html";
      $files{'page1'} = "/usr/home/hoge/public_html/page1/index.html";
      .....

  4. tupdated.cgiをアスキーモードでFTPする。パーミッションは705にする。
    (telnetの場合)
    % chmod 705 tupdated.cgi

  5. tp.htmlを普通のHTMLファイルと同じように編集する。更新時間を表示させたい場所に、<!--modify:<ID>--> と書く。<ID>の部分は1.で編集した$files{'<ID>'}に対応しています。

    (例) <!--modify:top--> と書いた場合
      → $files{'top'} で指定したファイルの更新時刻が表示される。

     tp.htmlの編集例はこちら

  6. $basedirで指定したディレクトリに($basedir=".";の場合は tupdated.cgi と同じディレクトリ。以下同様。)に、tp.html をFTPのアスキーモードで転送する。パーミッションを 604 に設定する。
    (telnetの場合)
    % chmod 604 tp.html

  7. 3, の $htmlfile で指定した名前の空ファイルを作成する。
    ※ 空ファイルの作り方は、空ファイルの作り方を参照。

  8. それを3, のパスで指定した部分にFTPのアスキーモードで転送する。パーミッションを606にする。 (telnetの場合)
    % chmod 606 xxxxx.html

  9. updated.cgiにアクセスしてみる。
     → テンプレートが表示され、特殊タグ部分に更新時刻が表示されていればOK。
       ※ 上のように表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。

[目次へ]

使い方

更新時刻を見る

 更新時刻はインストール方法で設定した出力先ファイルに記録されます。更新時刻を見るには、出力先ファイルにブラウザからアクセスしてください。なお、tupdated.cgi を一回以上実行していないと、出力先ファイルには何も記述されません

[目次へ]

 

更新時刻を取得する

 tupdated.cgi にアクセスすると、出力先ファイルが $file{'...'} で設定したファイルの更新時刻を見に行き、テンプレートファイルの特殊タグ部分をその時点での更新時刻に書き換えます。普段ユーザに見せるのは出力先ファイルだけにして、自分でページを更新したときにtupdated.cgiにアクセスするようにしてください。

[目次へ]

 

時間の表示を変える(年月日時秒分 <-> 年月日)

 デフォルトの状態では、時間の表示は「年月日時分秒」になっています。表示を変更するには、updated.cgiの 33行目付近(以下)を変更します。

##### 年月日時秒分で表示する場合はこちらの頭の「#」を取って下さい。
$modify = sprintf("%04d/%02d/%02d %02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec); ← (a)
##### 年月日のみで表示させる場合は下行の頭の「#」を取って下さい。
# $modify = sprintf("%04d/%02d/%02d", $year, $mon, $mday); ← (b)

  • 年月日にするとき → 上の行 (a) の頭に「#」を付け、下の行 (b) の頭の「#」をはずす。
  • 年月日時分秒にするとき → 下の行 (b) の頭に「#」を付け、上の行 (a) の頭の「#」をはずす。

[目次へ]

Note...

動作の解説

 このプログラムの構造は、updated.cgiがdmy.txtを読み込んで、その中に<!--modify:X-->という部分を見つけたら、対応する$files{'X'}の更新時刻で置き換えて、その結果を出力先ファイルに出力する、というふうになっています。updated.cgiにリンクすると更新時刻を書き加える作業が行われ、それが終わると出力先ファイルに移動するようになっています。ですから、updated.cgiのURLを入力しても、表示されるのは出力先ファイルのURLになるわけです。

 しかし、更新時刻はそんなにしょっちゅう変わらないのに、一回ごとに更新時刻を取りにいくプログラムを動かすのは非常に非効率です。もしそれが嫌だったら、更新した時だけ自分でupdated.cgiを動かして出力先ファイルを書き換えて、普段は出力先ファイルにリンクを張っておけば効率的です。要するに、updated.cgiは出力先ファイルを作成するためだけに使うのです。

[目次へ]

バージョン情報

バージョン履歴

  • (1999/8/1) Ver.1.00
     旧 hpmgr.cgi を公開用に書き換える。名前を改めて登録。

[目次へ]