GET、POST、COOKIE 入力からの PHP 変数名のドット文字の保持
PHP では、変数名のドット文字 (.) GET、POST、または COOKIE リクエストを介して渡されたリクエストは、自動的にアンダースコア (_) に置き換えられます。これは、特定のシナリオでは問題となる可能性があります。
PHP の動作の説明
PHP のドキュメントによると、ドットは PHP 変数名では有効な文字ではありません。 PHP は構文エラーを防ぐためにそれらをアンダースコアに変換します。次の文字もアンダースコアに変換されます:
自動を無効にする置換
残念ながら、この自動置換動作を無効にする組み込みの PHP 構成オプションはありません。ただし、スクリプト内でアンダースコアを手動でドットに戻すことができます。
解決策: 後処理置換
方法 1: str_replace を使用する
次のコードは、 str_replace 関数:
<?php $var_with_underscores = $_SERVER['REQUEST_URI']; $var_with_dots = str_replace('_', '.', $var_with_underscores);
方法 2: preg_replace を使用する
正規表現を使用して置換を実行することもできます:
<?php $var_with_underscores = $_SERVER['REQUEST_URI']; $var_with_dots = preg_replace('/_/', '.', $var_with_underscores);
以上がユーザー入力の PHP 変数名のドット文字を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。