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