CGI - 解説コーナー

まず、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)行目を表示します。



参考文献:翔泳社 10日でおぼえるPerl/CGI入門教室
<-Back