■=Perl, ■=結果
ホームページにページが増えると、訪問者は何がどこにあるか判り難くなりますよね。それ以上に作っている本人も・・・・。それとテストで作ったHTMLがそのまま本番のファイルに残ってしまうこともあります。そこでCGIを使ってファイルの一覧を作ってみましょう。(他のページではCGIを実際に動かしながらテストをできるようにしていますが、このページでは解説だけにしています) このページは「ディレクトリ一覧」の続きです。まだ読まれていない方はご覧になってください。 |
#!/usr/local/bin/perl
$dirname = '..';
print "Content-type: text/html\n\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=x-euc-jp\">\n";
opendir(DIR, $dirname);
while (defined($dir = readdir(DIR))) {
$filename = "$dirname\/$dir";
if ($dir =~ /\.s?html?$/) {
$filedate = -M $filename;
if ($filedate < 8){$newflag = 1}
&html_sub;
}
}
closedir(DIR);
exit;
sub html_sub {
open(FILE, $filename);
$file = join('', <FILE>);
close(FILE);
if ($newflag == 1){
print "<font color=\"red\">●</font>";
$newflag = 0;
} else {
print "<font color=\"blue\">●</font>";
}
if ($file =~ /<title>(.*?)<\/title>/si) {
$title = $1; #マッチした部分の抽出
$title =~ s/[\r\n]//g;
$title =~ s/ココとPerlで遊びませんか\(/ココとPerlで・・(/;
print "<a href=\"$filename\">$title</a>";
} else {
print "<a href=\"$filename\">$dir</a>"
};
print "<br>\n";
}
|
●ココとPerlで遊びませんか ●ココとPerlで・・(年月日や曜日・時刻の取得) ●ココとPerlで・・(画面に文字を表示しよう) ●ココとPerlで・・(決り文句を呼び込む) ●heder_txt.html |
それでは順を追ってスクリプトの説明を始めます(先ほどの「ディレクトリ一覧」の説明と重複する部分もあります)。
#!/usr/local/bin/perl $dirname = '..'; print "Content-type: text/html\n\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=x-euc-jp\">\n"; |
opendir(DIR, $dirname); 中略 closedir(DIR); |
while (defined($dir = readdir(DIR))) {
$filename = "$dirname\/$dir";
if ($dir =~ /\.s?html?$/) {
$filedate = -M $filename;
if ($filedate < 8){
$newflag = 1
}
&html_sub;
}
}
|
ここからはサブルーチン(html_sub)の説明です
sub html_sub {
中略
}
|
open(FILE, $filename);
$file = join('', <FILE>);
close(FILE);
|
| join(区切り文字列, 配列またはリスト) |
if ($newflag == 1){
print "<font color=\"red\">●</font>";
$newflag = 0;
} else {
print "<font color=\"blue\">●</font>";
}
|
if ($file =~ /<title>(.*?)<\/title>/si) {
$title = $1;
$title =~ s/[\r\n]//g;
$title =~ s/ココとPerlで遊びませんか\(/ココとPerlで・・(/;
print "<a href=\"$filename\">$title</a>";
} else {
print "<a href=\"$filename\">$dir</a>"
};
print "<br>\n";
|
if ($file =~ /<title>(.*?)<\/title>/si) {
|
| 文字列 =~ /パターン/ |
$title = $1; $title =~ s/[\r\n]//g; |
| s/文字列1/文字列2/ |
$title =~ s/ココとPerlで遊びませんか\(/ココとPerlで・・(/; print "<a href=\"$filename\">$title</a>"; |
} else {
print "<a href=\"$filename\">$dir</a>"
};
print "<br>\n";
|
| | Back | Coco's Home | ココとPerlで遊びませんか | |