CGI ツール
目次
2002/08/30
ここでは Pegasus 1.2 に添付されている CGI ツールを紹介する。
Pegasus 1.2 で使用可能な CGI ツールは、ここに紹介するもの以外に多数存在するはずである。それらの例については後述する。
qsparse
用法:qsparse [-r] [-s size] [query]
このプログラムは x-www-form-urlencoded 形式に基づく query を解析し、結果を環境変数に入れる。
例えば
qsparse 'name=alice&age=18'を実行する事によって、環境変数
QS_name
と QS_age
が生成され、その内容は各々
alice
および 18
となる。この例に見られる様に環境変数の前に
QS_
が付け加えられる。このような仕様にしてあるのは、クライアントの操作によってシステム定義の環境変数が置き換えられる危険性を避けるためである。
-r
オプションは環境変数の値から CR コードを除去する。
query
を省略すると標準入力から query を読み取る。これは POST メソッドで使用する。
-s size
オプションで標準入力から query を読み取る場合のバッファの大きさを指定できる。[省略値=16KB]
qsparse は簡単な query を処理するのに適している。つまり、
- query の中で同一の変数が複数回現れた場合には、配列として扱われる。
- 環境変数の値は 16KB までしか許されない。(Plan9 の制限)
- 環境変数は英数字と下線記号だけから構成されると仮定している。
formparse
用法:formparse [-r] [-o dir] [query]
このプログラムは x-www-form-urlencoded 形式に基づく query を解析し、結果を指定されたディレクトリのファイルに入れる。
-r
オプションが指定された場合には CR コードを取り除く。-o dir
は出力するディレクトリを指定する。[省略値="/tmp"]query
が省略された場合には標準入力から query を読み取る。
formparse
は qsparse
よりも大きなデータを扱うのに適している。
同じ変数が現れる事を想定してformparse
は次の例に示すようなファイルを作成する。
/tmp/name/0 /tmp/name/1 /tmp/name/2 /tmp/name/cloneここに
name
は変数の名前であり、それをディレクトリの名称として、その下に 0, 1, 2, ... の名前のファイルを作成する。これらのファイルの内容が変数の値である。
注意: formparse は現在のところ、multipart/form-data
に対応していません。次のリリースでは対応したいと思います。(これはファイルを送信する時に使用します)