真幸のPerlリファレンス
Step1 : 表示(Html) [戻る]

● はじめに

 CGIを開発する・・・で何をするのか?
 1番重要なことである。大抵データ入力をさせ、データを編集・表示するものだろうと思う。
 まず、何が必要か?・・・「CGIから内容(データ)を表示する。」だと思う。
 まぁ表示しないと意味を感じないだろうしね。
 目に見えないもの組むほどやる気は起こらんだろうし。
 と言うことで、ここでは「CGIからHTMLを作成してブラウザに表示させる」ことを
 説明していく。

● サンプルソース

 #!/usr/local/bin/perl
 #----------------------
 # Step1 : 表示(HTML)
 #----------------------

 printf("Content-type: text/html\n\n");
 printf("<HTML>\n");
 printf("<HEAD>\n");
 printf("<TITLE>Step1 : 表示(HTML)</TITLE>\n");
 printf("</HEAD>\n");
 printf("<BODY>\n");
 printf("これはサンプルです。\n");
 printf("</BODY>\n");
 printf("</HTML>\n");

 上記ソースをコピーするか、自分で打ってファイルを作成して下さい。
 ファイル名は適当なもので良い。「step01.cgi」とかしておけば、
 今後のソースをシーケンスで並べられるよ。

● ソースの実行

 ブラウザのアドレスにURLを直打します。「http://アドレス/step01.cgi
 実行結果は、ブラウザに「これはサンプルです。」が表示されればOKです。

● 解説

 1行目
   #!/usr/local/bin/perl
  となっている。これはサーバのPerlのパスを指定する。必ず1行目の先頭に記述すること!
  プロバイダによってパスは変わるので確認してくれ。(大抵はこれでいいハズ)
  BIGLOBEだと「#!/usr/mesh/bin/perl」とかね。

 2〜4行目
  コメントである。Perlでは、「#」以降はコメントと認識される。

  ※1行目のパスは決まりらしいので、従っている。だから従ってくれ。

 5行目
  ここがポイントである。
   printf("Content-type: text/html\n\n");
  の「Content-type: text/html\n\n」が重要!
  これはヘッダー情報で、ブラウザに「これからHTML形式の情報を渡しますよ」と
  知らせるのである。それ以降の文字列をHTML形式の情報としてブラウザは表示をする。

  ※「\n」は何か?これは改行を意味している。
   HTMLタグを記述するときに、見易くする為に改行するでしょ?それと同じさ。
   1つ記述すれば、1回改行される。
   ここで注意!このヘッダー情報とHTML情報の間には空行を挿入しなければならない。
   「\n\n」となっているのは、その為である。

 6〜最終行
  ここで、HTML情報を作成している。
  見れば一目瞭然、「printf("・・・");」の中に
  HTMLタグが記述されている。

  ※「printf("・・・");」とは何か?
   これは、「・・・」の内容(文字列)を出力しろ!って関数(命令)である。
   この場合は、ブラウザに出力しろ!ってことだね。OK?

  ということにより、「printf関数」を使用して、HTMLタグを発行しているのだ。

● サンプルソース2(これは各自で実行&テスト&解析をしてくれ)

 #!/usr/local/bin/perl
 #----------------------
 # Step1-1 : 表示(HTML)応用1
 #----------------------
 print "Content-type: text/html\n\n";
 print "<HTML>\n";
 print "<HEAD>\n";
 print "<TITLE>Step1 : 表示(HTML)</TITLE>\n";
 print "</HEAD>\n";
 print "<BODY>\n";
 print "これはサンプルです。\n";
 print "</BODY>\n";
 print "</HTML>\n";

 もしかしなくても、「printf」より「print」の方が良く使用されているハズ。

 #!/usr/local/bin/perl
 #----------------------
 # Step1-2 : 表示(HTML)応用2
 #----------------------
 print "Content-type: text/html\n\n";
 print <<_HTML_;
 <HTML>
 <HEAD>
 <TITLE>Step1 : 表示(HTML)</TITLE>
 </HEAD>
 <BODY>
 これはサンプルです。
 </BODY>
 </HTML>
 _HTML_



- 戻る -