まず、CGIとは、"Common Gateway Interface"の略で、Webサーバ上のプログラムから出力されたHTML文書を、
WEBサーバを介してブラウザに送信する仕組みです。
CGIはあくまでプログラムを実行するためのものであり、プログラム言語(以下、言語)を選んでソースを書かなければなりません。
言語はC++やVisualBasic等でも良いのですが、テキスト処理の優れたPerlという言語がよく使われています。
以下では、このサイトで実際使われているCGIソースについて解説します。
関数、ステートメントの解説はしませんので悪しからず。
1.小父の小言
#!/usr/local/bin/perl
########################################
# telling.cgi - Uncle said by A-Blue #
########################################
# User Setting
$filename = "./telling.txt";
# File Load
open (openfile, $filename);
@tell = <openfile>
close (openfile);
# Count Strings
while ($tell[++$num]) {}
# Dice Roll
$roll = int(rand $num);
# CGI Header
print "Content-type: text/html\n\n";
# Output HTML
print "<html><head></head><body>";
print "<b>$tell[$roll]</b>";
print "</body></html>";
|
全体の流れ 読込ファイル指定→ファイル読込→行数確認→乱数決定→表示 #!/usr/local/bin/perl これはCGIを実行できるようにするための宣言です。 サーバの、このディレクトリの中にPerl用プログラムが入っています。 サーバによってはディレクトリの位置が違う場合があります。 # User Setting 文書を読み込むファイル名を定義します。 文字列"./telling.txt"を変数(filename)へ代入します。 なお、"telling.txt"には予め表示させたい文章を行区切に入力しておきます。 # File Load 文章を読み込んで使えるようにします。 (tell)に読み込んだ文書が入ります。 # Count Strings 文章の行数を(num)に入れます。 次の行が無くなるまで(num)を増やす方式です。 # Dice Roll 行数に合ったサイコロを振り(roll)に入れます。 # CGI Header 結果を表示するために必要な宣言です。 # Output HTML 結果を表示します。 (tell)の(roll)行目を表示します。 |