ホームページ > バックエンド開発 > PHPチュートリアル > PHP によるリクエスト名と Cookie 名のドットの自動置換を回避するにはどうすればよいですか?

PHP によるリクエスト名と Cookie 名のドットの自動置換を回避するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-26 19:33:19
オリジナル
179 人が閲覧しました

How Can I Work Around PHP's Automatic Replacement of Dots in Request and Cookie Names?

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 はドットに加えて、次の文字もアンダースコアに置き換えます:

  • chr(32) ( ) (スペース)
  • chr(46) (.) (ドット)
  • chr(91) ([) (開き角括弧)
  • chr(128) - chr( 159) (いろいろ)

以上がPHP によるリクエスト名と Cookie 名のドットの自動置換を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート