• ベストアンサー

PHPでリクエスト受け取った時の配列添字について

よろしくお願いします。 hoge.com/fuga.php?.prm=1 のように、「 . 」 で始まるパラメータを受け取った時、$_GETの添字には、「 . 」が「 _ 」に変換され、「 _prm 」として入ってくるのですが、これはPHPの一般的な動作なんでしょうか? それともPHPバージョンや、INI設定、文字コード等に依存する物なんでしょうか? 現状、「 _ 」に変換される物として扱っていますが・・・ ご存じの方、ご回答をよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

ANo.1です http://jp.php.net/manual/ja/language.variables.external.php ----- 引用ここから 注意: 変数名のドットやスペースはアンダースコアに変換されます。 たとえば <input name="a.b" /> は $_REQUEST["a_b"] となります。 ----- 引用ここまで

miipo
質問者

お礼

わざわざ日本語訳もお知らせいただきありがとうございます。 仕様とのこと、すっきりしました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

どうしてもそのname以外ほかに選択肢がないというなら $_SERVER["QUERY_STRING"]を自前で評価してください ただしPOSTの場合は無理です。 トラブルをさけるためには、nameには英数半角文字以外つかわない というのが賢明です

miipo
質問者

お礼

トラブルを避ける為には・・・全く同感でございます。今回他社制作のシステムから受け取るパラメータに、このような仕様があったので、こちらではどうにもできずご質問させていただきました。ご回答ありがとうございました。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

phpの仕様です。main/php_variables.cに /* ensure that we don't have spaces or dots in the variable name (not binary safe) */ と記述があります。

関連するQ&A