いそぎんちゃく
[HomePage]
1999/11/30(火) 17:20:35
SSIを使って
「navigator.html」
<A HREF="hogehoge.html">ほげほげ</A>
<!--#config timefmt="時刻形式指定"-->
<!--#flastmod file="hogehoge.html"-->
というファイルを作り、通常のHTMLから
<!--#include file="navigator.html"-->
としてやると、hogehoge.htmlの最終更新日時をリンクと共に表示してくれますが、
CGIから
$navi = 'navigator.html';
open(DB,$navi);
@navis = <DB>;
close(DB);
print "@navis\n";
としてやっても、リンクが表示されるだけで最終更新日時は表示してくれません。
いったい、どうすればCGIの中でSSIを使用して、最終更新日時を表示してくれるようになるでしょうか?
いそぎんちゃく
[HomePage]
1999/12/01(水) 09:02:38
いろいろ、ありがとうございます。
>B-Cusさん
>http://japache.infoscience.co.jp/japanese_1_3/manual/misc/FAQ.html#ssi-part-iii
こういうページがあったのですね。これは、なにかと役に立ちそう。
># しかし、ひどい日本語だ。
最初、ワタシの書き込みが「ひどい日本語」だと言われてるのかと思ってアセりました。上記ページの話だったのですね(安心)。
>M.Nakawakiさん
さっそく見させてもらいました。
わざわざ、ありがとうさんです。
ところで、疑問に思ったとことがあるのですが、
(ここから引用)
# HTMLドキュメントのパス
$html_file = './test_1.html';
# HTMLドキュメントの中身を変数に格納(UNIXのcatコマンドを使っています)
# 私は簡潔に記述できるのでcatをよく使いますけど,お好み&環境でopen関数で読み込んでもいいです.
$html_doc = `cat $html_file`;
# HTMLドキュメントの最終更新からの時間(日数)を取得
$time = -M "$html_file";
# 得られた日数から更新時刻を割り出し,我々が普通に使う形式のデータに変換.
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - $time * 24 * 60 * 60);
@wday_array = ('日','月','火','水','木','金','土');
$year = $year + 1900;
$date = sprintf("%04d年%01d月%01d日(%s)%02d時%02d分%02d秒",$year,$mon+1,$mday,$wday_array[$wday],$hour,$min,$sec);
# SSIコマンド「<!--#flastmod file="./test_1.html"-->」を更新時刻のデータに書き換える.
$html_doc =~ s|<!--#flastmod file="./test_1.html"-->|$date|ge;
# 更新日時を挿入したドキュメントを出力.
print "Content-type: text/html\n\n";
print "$html_doc\n";
(引用ここまで)
ワタシの場合は、最初の「$html_file = './test_1.html';」を「$html_file = 'navigator.html';」に変え、「$date = sprintf("…」をお好みの形式に変えればいいのかなと思ったのですが、よく見るとその後に
$html_doc =~ s|<!--#flastmod file="./test_1.html"-->|$date|ge;
というのがあります。
これは、読み込んだnavigator.htmlの中に「|<!--#flastmod file="./test_1.html"-->」という記述があったら「$date」に置き換えるというものだと思いますが、実は当方が用意しているnavigator.htmlには、いくつもの「|<!--#flastmod file="xxxx.html"-->」があるのです(この書き込みのリンクを参照してください・ページの上部に表示されてるのがそうです)。
ということは、ここで、それを全部記述しないということですよね?
しかも、navigator.htmlで記述されているリンク先と更新日時表示のSSIは、将来変更されることがあるのです。
ということは、その時にまたCGIの中身も変更しなければならないということになってしまうのではないでしょうか????
#当方が希望していたのは、あくまでもnavigator,htmlの中身が変更になっても、それを呼んでいるHTML/CGIの中身を変更しなくても済むようなものだったので…。
#せっかく作ってもらったのにいろいろ言ってスミマセン。