Tukubaiオンラインコマンドマニュアル - cgi-name(1)

cgi-name(1)

【名前】

cgi-name : CGI POSTメソッドで受け渡されるデータをネーム形式に変換

【書式】

Usage   : cgi-name [-d<c>][-i<string>] <param_file>
Option  :          [--template <html>]
Version : Sun Oct  2 14:17:02 JST 2022
Edition : 1

【説明】

cgi-nameはWEBサーバのCGI POSTメソッドで受け渡されるデータをネーム形式へ変換する。<param_file>として-を指定すると標準入力を使用する。

【例1】

Webサーバよりplace=tokyo&country=japanという文字列が渡される場合、キー値と値をネーム形式に変更して出力する。

$ dd bs=$CONTENT_LENGTH | cgi-name
place tokyo
country japan
$

【例2】

改行(%0D%0A)は文字列'\n'に変換される。また、記号'+'は半角空白に変換される。

$ echo 'place=%E6%9D%B1%E4%BA%AC%0D%0A%E5%A4%A7%E9%98%AA&country=ja+pan' | cgi-name
place 東京\n大阪
country ja pan
$

【例3】

-dオプションを指定すると半角空白は削除あるいは指定文字に変換される。

$ echo 'place=tokyo osaka&country=japan' | cgi-name
place tokyo osaka
country japan
$
$ echo 'place=tokyo osaka&country=japan' | cgi-name -d_
place tokyo_osaka
country japan
$
$ echo 'place=tokyo osaka&country=japan' | cgi-name -d
place tokyoosaka
country japan
$

【例4】

-iオプションを指定することで、返される文字列がヌルの場合の初期値を指定できる。

$ echo 'place=&country=japan' | cgi-name
place
country japan
$
$ echo 'place=&country=japan' | cgi-name -isomewhere
place somewhere
country japan
$

【例5】

--templateオプションを指定することで、指定したHTMLテンプレートより、radioboxとcheckboxの名称を取り出し、その名称でデータが出力されなければ、出力をその名称で補完する。radioboxやcheckboxは選択しないでsubmitすると値そのものが出力されない。何も選択しなかったというデータを生成するためにこのオプションを使用する。

$ cat html
-----省略
<input type="radiobox" name="XXXX" value="A" />
<input type="radiobox" name="XXXX" value="B" />
<input type="radiobox" name="XXXX" value="C" />
<input type="checkbox" name="YYYY" value="a" />
<input type="checkbox" name="YYYY" value="b" />
<input type="checkbox" name="YYYY" value="c" />
-----省略
$
$ dd bs=$CONTENT_LENGTH | cgi-name -i_ --template html
-----省略
XXXX _
YYYY _
-----省略
$

【例6】

radiobox checkboxがhtmlテンプレートのmojihame -lコマンド対象部分にある場合においても、タグ名_%数字を認識して選択値がなくてもタグ名を出力する。

$ cat html
-----省略
<!-- MOJIHAME -->
<input type="radiobox" name="X_%1" value="%2" />
<!-- MOJIHAME -->
-----省略
$
$ dd bs=$CONTENT_LENGTH | cgi-name -i_ --template html
-----省略
X _
-----省略
$

【備考】

CGI POSTメソッドで受け渡されるデータには改行がない。通常のファイルとして使用するには、ファイル末に改行コードを付加しておくほうが扱いやすい。cgi-nameコマンドはファイル末の改行があってもなくても正しく値を取り出す。

【関連項目】

mime-read(1)nameread(1)ネーム形式(5)

Last modified: 2022-10-02 15:34:50