
■=Perl, ■=結果
ココの写真集です。データファイルからブラウザに一覧表を表示します。データファイルには写真のアドレス、キャプション、写真サイズなどが書き込まれています。
(1) データをそのまま表示 |
| open(FILE, 'filename') |
| open (PHOTOFILE, '../images/cocophoto.txt'); |
| close(PHOTOFILE) |
| close(PHOTOFILE); |
| while (条件式) {条件式が正しいときの繰り返し処理} |
| while (defined($line = <PHOTOFILE>)) { } |
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
open(PHOTOFILE, '../images/cocophoto.txt');
while (defined($line = <PHOTOFILE>)) {
print "$line<br>";
}
close(PHOTOFILE);
exit;
|
cocophoto01.cgi (1)データをそのまま表示します| split(/パターン/,文字列) |
| @item = split(/;/,$line) |
データはこのような形式です。
| 元データ | URL | ; | キャプション | ; | 横サイズ | ; | 縦サイズ | ; | 区分 | ; |
| 配列 | $item[0] | $item[1] | $item[2] | $item[3] | $item[4] |
#!/usr/local/bin/perl
$title = "cocophoto.txt表示";#HTML文書のタイトル
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<center>\n";
print "<h2>$title</h2>";
print "<table border='1'><tr><td>URL</td><td>説明</td><td>横サイズ</td><td>縦サイズ</td><td>区分</td></tr>\n";
open(PHOTOFILE, '../images/cocophoto.txt');
while (defined($line = <PHOTOFILE>)) {
@item = split(/;/,$line);
print "<tr><td>$item[0]</td><td>$item[1]</td><td>$item[2]</td><td>$item[3]</td><td>$item[4]</td></tr>\n";
}
close(PHOTOFILE);
print "</table>\n";
print "</center>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
cocophoto02.cgi (2)TABLE を使ってデータから一覧表を表示します
#!/usr/local/bin/perl
$title = "cocophoto.txt表示&Jump";#HTML文書のタイトル
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<center>\n";
print "<h2>$title</h2>";
print "<table border='1'><tr><td>URL</td><td>説明</td><td>横サイズ</td><td>縦サイズ</td><td>区分</td></tr>\n";
open(PHOTOFILE, '../images/cocophoto.txt');
while (defined($line = <PHOTOFILE>)) {
@item = split(/;/,$line);
print "<tr><td><a href='$item[0]'>$item[0]</a></td><td>$item[1]</td><td>$item[2]</td><td>$item[3]</td><td>$item[4]</td></tr>\n";
}
close(PHOTOFILE);
print "</table>\n";
print "</center>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
| print "<tr><td><a href='$item[0]'>$item[0]</a></td> ...... |
cocophoto03.cgi (3)リストから写真へのリンク付きです
先ずはリスト表示用
#!/usr/local/bin/perl
$title = "写真リスト表示&Jump";#HTML文書のタイトル
$l =0;
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<center>\n";
print "<h2>$title</h2>";
print "<table border='1'><tr><td>No.</td><td>URL</td><td>キャプション</td><td>横サイズ</td><td>縦サイズ</td><td>区分</td></tr>\n";
open(PHOTOFILE, '../images/cocophoto.txt');
while (defined($line = <PHOTOFILE>)) {
$l ++;
@item = split(/;/,$line);
print qq|<tr><td align="right">$l</td><td><a href="./cocophotodisp.cgi?l=$l">$item[0]</td><td>$item[1]</td><td align="right">$item[2]</td><td align="right">$item[3]</td><td align="center">$item[4]</td></tr>\n|;
}
close(PHOTOFILE);
print "</table>\n";
print "</center>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
cocophoto04.cgi (4-1)行番号を付けて、中央に写真を表示するための一覧表です。(3)と異なるのは、何行目のデータかをcocophotodisp.cgiに教えるために、$l を使っていることです。cocophoto.txtを読んでは $l++ で $l に1を加算し、cocophotodisp.cgi?l=$l として CGI を実行できるようにしています。
続いて写真の表示用スクリプトです。
#!/usr/local/bin/perl
require 'stdin.txt';# 入力文字処理
$title = "写真表示";#HTML文書のタイトル
$line = $FORM{'l'};
$i = 0;
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<br>\n";
open(PHOTOFILE, '../images/cocophoto.txt');
@cocotext = <PHOTOFILE>;
close(PHOTOFILE);
@photo = split(/;/,@cocotext[$line-1]);
print "<center>\n";
print "<table border='5'>\n";
if ($photo[2] eq '' and $photo[3] eq '') {
print qq|<tr><td align="center"><img src="$photo[0]"></td>\n|;
} else {
print qq|<tr><td align="center"><img src="$photo[0]" width="$photo[2]" height="$photo[3]"></td>\n|;
}
print "<tr><td>$photo[1]</td></tr>\n";
print "</table>\n";
$newline = $line+1;
if ($line < @cocotext) {
print qq{<br>| <a href="Javascript:history.back()">BACK←</a> | <a href=\"./cocophoto04.cgi">写真リスト</a> | <a href=\"./cocophotodisp.cgi?l=$newline\">→NEXT</a> |\n};
} else {
print qq{<br>| <a href="Javascript:history.back()">BACK←</a> | <a href=\"./cocophoto04.cgi">写真リスト</a> |\n};
}
print "</center>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
cocophotodisp.cgi (4-2)キャプション付きで写真を中央に表示します。
| $line = $FORM{'l'}; |
| @photo = split(/;/,@cocotext[$line-1]); |
| ||||||||||||||||||||||
if ($photo[2] eq '' and $photo[3] eq '') {
print qq|<tr><td align="center"><img src="$photo[0]"></td>\n|;
} else {
print qq|<tr><td align="center"><img src="$photo[0]" width="$photo[2]" height="$photo[3]"></td>\n|;
}
|
$newline = $line+1; |
if ($line < @cocotext) { }
|
| | Back | Coco's Home | ココとPerlで遊びませんか | |