[PHP-users 3025] Re: CGI版で引数に+ を含む文字列を与える

Eita Morikawa php-users@php.gr.jp
Mon, 22 Oct 2001 15:02:48 +0900


ちょっと時間がたってしまいましたが、自己フォローです。

> CGI版のPHP(4.0.6)で、引数に+を含む文字列を与えると、
> +を除いた2つの文字列を与えたように解釈されてしまいます。
> +には何か特別な意味があるのでしょうか?

どうやら+はコマンドライン引数の区切り文字のようですね。
次の方法で、+を含む文字列を引数として与えることができました。

$/usr/local/bin/test.php yama%2Bkawa+2nd%2Bstr
  urldecode($argv[0]) → "yama+kawa"
 urldecode($argv[1]) → "2nd+str"

HTMLのFROMから値を渡すのと同じ感じで、urlエンコードして
export QUERY_STRING='var1=yama%2Bkawa&var2=2nd%2Bstr'
とやる手もありますね。(shellはbashです)

*********************
森川英太(Eita Morikawa)
chanoma@parknet.co.jp
*********************