public_html以下にいくつものディレクトリがあります。そのうちどれかを更新するたびにその更新日時が自動的にpublic_html直下のindex.htmlに出るようにするにはどうしたらいいですか

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/02/02 01:38:18
  • 終了:2009/02/09 01:40:03

回答(2件)

id:a-gamyl No.1

a-gamyl回答回数42ベストアンサー獲得回数12009/02/02 03:33:13

ポイント35pt

方法としては、

Linux系ならcrontabに定期的に更新日時をチェックするためのスクリプトを追加し、定期的に index.html を更新する。

Windows系でも同様な感じで定期的にコマンドを動かすようにする。

あとは、Ajaxとかで更新日時を調べるようなスクリプトを呼んだりもできますね。

Ajax から CGI を呼び出し、CGI からファイルの更新日時を調べて出力する形になります。

若干、面倒な手順になるかもしれませんが、Ajax の良い練習になると思います^^

http://www.openspc2.org/JavaScript/Ajax/

id:a-gamyl No.2

a-gamyl回答回数42ベストアンサー獲得回数12009/02/02 04:03:36

ポイント35pt

Ajaxの例題を作ってみました。

prototype.js は適宜ダウンロードしてきてください。

流れとしては、index.html から CGI 呼び出し用の JavaScript ファイル (main.js) を呼び出し、出力したい場所を span や div のタグにより指定する。

CGI ファイル(get_date.cgi)の内容を適宜変更。

Ajaxを利用したことなければ、若干分かりづらいかもしれませんが、参考までに。。


http://www.openspc2.org/JavaScript/Ajax/


index.html:

<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript" src="main.js"></script>

を追加。

出力したい場所に

<script type="text/javascript">getDate('daytime')</script>

を追加。

main.js:

// get CGI responces

function get_response_text(req) {

var text = req.responseText;

if(navigator.appVersion.indexOf("KHTML") > -1) {

var esc = escape( text );

if(esc.indexOf("%u") < 0 && esc.indexOf("%") > -1) {

text = decodeURIComponent(esc);

}

}

return text;

}

// get CGI responces

function getDate(id) {

var param = "";

new Ajax.Request("get_date.cgi", {

method: "get", parameters: param,

onComplete: function(req){

$(id).innerHTML = get_response_text(req);

}

});

}

get_date.cgi:

#!/usr/bin/perl -w

use strict;

use CGI;

my $q = new CGI;

print $q->header(-charset=>'utf-8');

my @file = <*>;

if($#file < 0){ print "[no file and directories.]\n"; }

foreach my $fname (@file){

if(-d $fname){

my $lastmodified = localtime((stat $fname)[9]);

print "$fname (Last Update: $lastmodified)
\n";

}

}

exit(0);

id:filofax

ありがとうございます。調べてみます

2009/02/02 09:14:09
  • id:a-gamyl
    上記HTMLの記述、
    <script type="text/javascript">getDate('daytime')</script>
    は、
    <span id="daytime"><script type="text/javascript">getDate('daytime')</script></span>
    に修正が必要でした。
    うまくいったでしょうか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません