PHP によるリクエスト名と Cookie 名のドットの自動置換: 解決策はありますか?
PHP はリクエスト内のドット (.) を自動的に置換しますおよびアンダースコア (_) を含む Cookie 名。問題があります。
PHP はなぜこのようなことを行うのでしょうか? PHP.net によると、以下の例に示すように、PHP 変数名ではドットは有効な文字ではありません:
$varname.ext; /* invalid variable name */
この解析の問題を回避するために、PHP はドットをアンダースコアに置き換えます。
残念ながら、この動作を無効にする直接的な方法はありません。解決策は、str_replace:
<?php $request_uri = $_SERVER['REQUEST_URI']; $get_vars = $_GET; // Convert underscores back to dots in GET variables foreach ($get_vars as $key => $value) { $key = str_replace('_', '.', $key); $get_vars[$key] = $value; } // Echo the modified GET variables print_r($get_vars); ?>
などの文字列操作関数を使用して、PHP スクリプトでアンダースコアを手動でドットに変換し直すことです。PHP はドットに加えて、次の文字もアンダースコアに置き換えます:
以上がPHP によるリクエスト名と Cookie 名のドットの自動置換を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。