今日の授業は、テキストファイルを一部読みこんで表示する機能を作ります。


えっ! いつになったらアクセスカウンターを作れるですか?


どうも、アクセスカウンターを作るには、ファイルを読み込む方法を学ぶ必要があるようだ。 



千里の道も何とやらで、基礎から一歩一歩学んでいきましょう。


コーディング開始を開始する前に、CD-ROMのdiary.txtをcgiと同じフォルダにコピーする必要があるようだ。


そうかそうかこのファイルを読み込むんだな。


では、コピーもしたしコーディング開始。

----------------------------------


#! c:/perl/bin/perl


#ファイルの読み込み

open(FILE,"./diary.txt");

@data = <FILE>;

close (FILE);

#サーバ出力

print <<END;

Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>ファイルの読み込み</title></head>
<body>

<p>$data[0]</p>
  <p>$data[1]</p>
  <p>$data[2]</p>

</body>
</html>

END

-------------------------


http://127.0.0.1/tendays/3-2.cgi 実行!



ここ二、三日は、ずっとじめじめしていたが、今日はどうやら晴れている。


夏の朝――夏と言ってもまだ5月だし、朝と言ってもすでにam10:00をまわっている。


僕は別にやることもなく、ただぼーっとイルカの存在理由なんぞについて考えていた。


↑のようにファイルの中身が表示される。



なるほど、ファイルをopenして、ファイルの中身をFILE中に入れる。

それを配列@dataに入れる。

ファイルをcloseする。


配列中身を、HTMLに出力する。


こんな感じ。


今回は、HTMLへの出力方法が違った。

ヒアドキュメントというらしい。


これ ↓


print <<END;


このなかHTMLタグ


END



今日のポイント


●ファイル


開く open


内容をよんだり書いたりする


閉じる close



●ファイルハンドル


open(FILE ,"./diary.txt");のFILEのこと。


これは任意の名前でよい。


ファイルの中身をよんだり、ファイルを閉じる時にも使用する。


●行入力演算子


@data = <FILE>;


<>が行入力演算子。


FILEの中身を1行ずつ配列に代入している。


●ヒアドキュメント

print << END;


print の後の<< がヒアドキュメントを使う指定。


ENDが終端文字列で任意の名前。



print <<END;

このなかHTMLタグ

END


このように、HTML出力をする。


最後のENDの後は必ず改行しないとエラーになる。これ決まり。



改行しないとこうなりました。


Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Apache/2.0.54 (Win32) Server at 127.0.0.1 Port 80
今日はおしまい