RubyCGI.org

RubyでCGIを作ろう


2章6節 ファイルの書き込み 更新日付: [2002-05-17]



今回はファイルの書き込みを学びましょう。

ファイルを書き込みをするときには
1.読み出し用にファイルを開く(変数に連結する)
2.ファイルにprint文を使って書き込む
3.ファイルを閉じる
という手順で行います。
それではプログラムを見てみましょう。

今回はHTML部分とプログラム部分に別れているので注意しましょう。

-- HTML 始まり -- html261.htm

<html>
<head>
<title></title>
</head>
<body>

<form action="test261.cgi" method="POST">
<input type="text" name="senddata">
<input type="submit" value="送信">
</form>

</body>
</html>

-- HTML 終わり --

-- プログラム 始まり -- test261.cgi

#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
require "cgi-lib"
input = CGI.new

FILENAME = "data261.log"
senddata = input["senddata"]

fh = open(FILENAME, "w")
fh.print senddata
fh.close
print "<html><body>wrote</body></html>"

-- プログラム 終わり --


ファイルをアップしパーミッションを変更してからhtml.261.htmを表示します。テキストボックスに「data」と入れて送信を押しましょう。今回のプログラムは表示は必ず「wrote」とでます。

もしプログラムはうまく動いたでしょうか?もしうまく動かなかったら先にdata261.logというファイルを作成して、パーミッションを664にしておいてください。これでうまくいくはずです。

しかし実は新しく「data261.log」というファイルが作成され、その中身が「data」となっているはずです。このファイルをダウンロードして確認してみましょう。テキストボックスに入れる文字を変えていろいろと試すと、保存されるファイルの中身が変わります。

まずtest241.cgiでは1行目、2行目は決り文句です。3,4行目はデコードです。6行目でファイル名を設定しています。7行目はフォームから受け取ったデータを変数senddataに入れいています。

9行目は書き込み用にファイルをオープンしています。"w"の部分がポイントです。10行目でsenddataをファイルに書きこみ。11行目でファイルを閉じています。12行目はファイルの書きこみが完了した事を表示しています。

今回はファイルの書きこみを説明しました。



今回始めて使った命令など
open文

RubyによるCGIプログラミング
RubyによるCGIプログラミング

<− 前へ : 2.5. 配列 | 次へ : 2.7. 1行掲示板完成! −>

RubyでCGIを作ろうトップ

| トップページ | 書籍「Ruby/GTKプログラミング入門」 | 書籍「RubyによるCGIプログラミング」 | RubyでCGIを作ろう | リンク集 | ツールなど | 自己紹介 |