- ベストアンサー
PHPでリクエスト受け取った時の配列添字について
よろしくお願いします。 hoge.com/fuga.php?.prm=1 のように、「 . 」 で始まるパラメータを受け取った時、$_GETの添字には、「 . 」が「 _ 」に変換され、「 _prm 」として入ってくるのですが、これはPHPの一般的な動作なんでしょうか? それともPHPバージョンや、INI設定、文字コード等に依存する物なんでしょうか? 現状、「 _ 」に変換される物として扱っていますが・・・ ご存じの方、ご回答をよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です http://jp.php.net/manual/ja/language.variables.external.php ----- 引用ここから 注意: 変数名のドットやスペースはアンダースコアに変換されます。 たとえば <input name="a.b" /> は $_REQUEST["a_b"] となります。 ----- 引用ここまで
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
どうしてもそのname以外ほかに選択肢がないというなら $_SERVER["QUERY_STRING"]を自前で評価してください ただしPOSTの場合は無理です。 トラブルをさけるためには、nameには英数半角文字以外つかわない というのが賢明です
お礼
トラブルを避ける為には・・・全く同感でございます。今回他社制作のシステムから受け取るパラメータに、このような仕様があったので、こちらではどうにもできずご質問させていただきました。ご回答ありがとうございました。
- shimix
- ベストアンサー率54% (865/1590)
phpの仕様です。main/php_variables.cに /* ensure that we don't have spaces or dots in the variable name (not binary safe) */ と記述があります。
お礼
わざわざ日本語訳もお知らせいただきありがとうございます。 仕様とのこと、すっきりしました。