cgi-name

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動

名前

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

書式

使い方とオプション

Usage

cgi-name [<param_file>]

Option

--template <html>
-e<c>
-s<c>
-n<string>

説明

cgi-name は、WEB サーバーの CGI POST メソッドで受け渡されるデータをname 形式に変換します。

例(その1)

WEB サーバーより ‘place=tokyo&country=japan’ という文字列が渡される場合、変数 値 という形式(name 形式)に加工されます。

$ echo 'place=tokyo&country=japan' | cgi-name > result
$ cat result
place tokyo
country japan

例(その2)

改行(%0D%0A %0D %0A)は、“” に変換されます。

$ echo 'place=tokyo%0D%0Aosaka&country=japan' | cgi-name > result
$ cat result
place tokyo\nosaka
country japan

例(その3)

-s オプションで半角空白を指定文字に変換します。

$ echo 'place=tokyo osaka&country=japan' | cgi-name -s_ > result
$ cat result
place tokyo_osaka
country japan

例(その4)

-s オプションで半角空白を削除します。

$ echo 'place=tokyo osaka&country=japan' | cgi-name -s > result
$ cat result
place tokyoosaka
country japan

例(その5)

-e オプションにより、エスケープ()される文字を指定します。この場合、文字 ‘' (%5C) は’\’ となります。

-s オプションと組み合わせて使うと、‘’ は ’_’ に、’' は ’\’ に、’ ’ は ’’ に変換され、完全なエスケープができます。

例(その5-1)

$ echo 'place=tokyo_osaka&country=japan' | cgi-name -e_ > result
$ cat result
place tokyo\_osaka
country japan

例(その5-2)

$ echo 'place=tokyo%5Cosaka&country=j_a_p_a_n' | cgi-name -e_ > result
$ cat result
place tokyo\\osaka
country j\_a\_p\_a\_n

例(その5-3)

$ echo 'place=tokyo osaka&country=j_a_p_a_n' | cgi-name -e_ -s_ > result
$ cat result
place tokyo_osaka
country j\_a\_p\_a\_n

例(その6)

-n オプションにより、返される文字列が空文字列の場合の置換文字列を指定できます。

例(その6-1)

$ echo 'place=&country=japan' | cgi-name > result
$ cat result
place 
country japan

例(その6-2)

$ echo 'place=&country=japan' | cgi-name -n somewhere  > result
$ cat result
place somewhere
country japan

例(その7)

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

$ cat html
<input type="radio" name="XXXX" value="A" />
<input type="radio" name="XXXX" value="B" />
<input type="radio" 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" />

$ echo 'XXXX=abcd' | cgi-name -n_ --template html > result
$ cat result
XXXX abcd
YYYY _
YYYY _
YYYY _

例(その8)

さらに、radio checkbox が html テンプレートの mojihame -l コマンド対象部分にあっても、タグ名_%数字を認識して、選択値が無いときでもタグ名を出力します。

$ cat html
<!-- MOJIHAME -->
<input type="radio" name="X_%1" value="%2" />
<input type="checkbox" name="Y_%1" value="%2" />
<!-- MOJIHAME -->

$ echo 'X_10=abcd' | cgi-name -n_ --template html > result
$ cat result
X_10 abcd
Y _

備考

-d 旧オプション(現 -s オプション)は保証されません。

-i 旧オプション(現 -n オプション)は保証されません。

Version and Edition

Version : Fri Jan 15 10:02:39 JST 2021

Edition : 1


© 2021 Universal Shell Programming Laboratory site