#!/usr/local/bin/perl

#

# search1.cgi

#

# Version 1.0.0

#

# Copyright (C) 2000 by MINOMUSI.

# 蓑虫

# http://www.ztv.ne.jp/minomusi/

##########

# 設定部分

# ↓漢字ライブラリ jcode.pl のファイル名

$jcodelib = 'jcode.pl';

# ↓漢字コード('sjis' 'euc' 'jis' のいずれか)

$kanjicode = 'sjis';

# ↓表示されるページの <BODY> タグ(背景色や背景イメージ指定で利用)

$bodytag = '<BODY BGCOLOR=#FFFFFF>';

# 情報の取得

# 検索するディレクトリ

$dir = '..';

# 捜すファイルの形式

$seach[0]='.htm';

$seach[1]='.html';

$seach[2]='.jpg';

$seach[3]='.jpeg';

$seach[4]='.gif';

$seach[5]='.HTM';

$seach[6]='.HTML';

$seach[7]='.JPG';

$seach[8]='.JPEG';

$seach[9]='.GIF';

$seach[10]='.cgi';

$seach[11]='.CGI';

# エラー表示が起こった時に表示されるメールアドレス

$admin ='minomusi@ztv.ne.jp';

##########

# 漢字ライブラリの読み込み

require "$jcodelib";

# ヘッダの送出

print "Content-type: text/html\n\n";

# 表示開始

&page_begin("ファイルサーチ1");

$hyouji='表示';&jcode'convert(*hyouji,$kanjicode);

print "現在までのこのサイト上でのファイルの最新の情報を提供します。<p>\n";

print "$hyoujiされる情報は、HTML形式のファイルとCGI、GIFとJPEG画像のファイルについてのみです。\n";

print "<HR>\n";

# データファイルを表示

&file_open($dir);

print "提供された情報は、以上です。\n";

&page_end;

# 終了

exit(0);

##########

# サブルーチン

# タイトル部分

# &page_begin("メッセージ");

sub page_begin {

local ($msg) = @_;

print "<HTML>\n";

print "<HEAD>\n";

print "<TITLE>$msg</TITLE>\n";

print "</HEAD>\n";

print "$bodytag\n";

print "<H1>$msg</H1>\n";

}

# ページの終わり

sub page_end {

print "<HR>\n";

print "<H4>2000/5/6 Made by minomusi</H4>\n";

print "</BODY>\n";

print "</HTML>\n";

}

# ディレクトリからファイルを捜す。

# &file_open("開きたいディレクトリ");

sub file_open{

local(@files,$file,$dir,$fileadd);

$dir = $_[0];

# ディレクトリのオープン

if (!opendir (DIR,$dir)) {

&print_error("ディレクトリを開けませんでした。");

}

# ディレクトリファイル名を全部読む

@files = readdir (DIR);

# ディレクトリを閉じる

closedir (DIR);

# ..を取る

foreach $file(@files){

if ($file eq '.'){

next;

}

if ($file eq '..'){

next;

}

$fileadd = "$dir/$file";

# 捜したファイルがディレクトリかどうかを判断

if (-d $fileadd){

print "<DL><DT><FONT SIZE=4><B>サブディレクトリ</B></FONT>\n";

print "<DD>$fileadd</DL>\n";

& file_open($fileadd);

} else {

& file_search($fileadd);

}

}

}

# ファイルを検索

# & file_search("ファイル名");

sub file_search{

local($extantion,$line);

local($filename) = @_;

$extantion = substr ($filename, rindex($filename,"."));

foreach $line(@seach){

if ($extantion eq $line){

@stat= stat $filename;

print "<DL><DT>$line FILE\n";

print "<DD>アドレス <A HREF=\"$filename\">$filename</A>\n";

print "<DD>ファイルサイズ $stat[7] バイト\n";

($sec,$min,$hour,$day,$mon,$year) = localtime($stat[9]);

$year += 1900;

$mon++;

print "<DD>最終更新日時 $year 年 $mon 月 $day 日 $hour 時 </DL>\n";

}

}

}

# エラー表示

# &print_error("メッセージ");

sub print_error {

local($msg) = @_;

&page_begin($msg);

print "恐れ入りますが、再度試していただくか、";

print "<A HREF=mailto:$admin>$admin</A>";

print "までお知らせください。\n";

print "<BR><CENTER><FORM><INPUT TYPE=\"button\" value=\"戻る\" onClick=\"JavaScript:history.back()\"></FORM></CENTER>\n";

&page_end;

exit(0);

}