「cgi-name」の版間の差分
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
||
22行目: | 22行目: | ||
=== 例(その1) === | === 例(その1) === | ||
− | WEB サーバーより ‘place=tokyo&country=japan’ という文字列が渡される場合、変数 値 | + | WEB サーバーより ‘place=tokyo&country=japan’ という文字列が渡される場合、変数 値 という形式(name 形式)に加工されます。 |
<pre>$ echo 'place=tokyo&country=japan' | cgi-name > result | <pre>$ echo 'place=tokyo&country=japan' | cgi-name > result | ||
30行目: | 30行目: | ||
=== 例(その2) === | === 例(その2) === | ||
− | + | 改行(%0D%0A %0D %0A)は、“” に変換されます。 | |
<pre>$ echo 'place=tokyo%0D%0Aosaka&country=japan' | cgi-name > result | <pre>$ echo 'place=tokyo%0D%0Aosaka&country=japan' | cgi-name > result | ||
54行目: | 54行目: | ||
=== 例(その5) === | === 例(その5) === | ||
− | -e | + | -e オプションにより、エスケープ()される文字を指定します。この場合、文字 ‘' (%5C) は’\’ となります。 |
-s オプションと組み合わせて使うと、‘''’ は ’_’ に、’' は ’\’ に、’ ’ は ’''’ に変換され、完全なエスケープができます。 | -s オプションと組み合わせて使うと、‘''’ は ’_’ に、’' は ’\’ に、’ ’ は ’''’ に変換され、完全なエスケープができます。 | ||
126行目: | 126行目: | ||
== 備考 == | == 備考 == | ||
− | -d | + | -d 旧オプション(現 -s オプション)は保証されません。 |
− | -i | + | -i 旧オプション(現 -n オプション)は保証されません。 |
== Version and Edition == | == Version and Edition == | ||
140行目: | 140行目: | ||
© 2021 Universal Shell Programming Laboratory [https://www.usp-lab.com/ site] | © 2021 Universal Shell Programming Laboratory [https://www.usp-lab.com/ site] | ||
− | |||
[[Category:man]] | [[Category:man]] |
2021年6月7日 (月) 08:37時点における最新版
名前
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