ホームページ > バックエンド開発 > PHPチュートリアル > ユーザー入力の PHP 変数名のドット文字を保持するにはどうすればよいですか?

ユーザー入力の PHP 変数名のドット文字を保持するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-13 03:38:14
オリジナル
312 人が閲覧しました

How Can I Preserve Dot Characters in PHP Variable Names from User Input?

GET、POST、COOKIE 入力からの PHP 変数名のドット文字の保持

PHP では、変数名のドット文字 (.) GET、POST、または COOKIE リクエストを介して渡されたリクエストは、自動的にアンダースコア (_) に置き換えられます。これは、特定のシナリオでは問題となる可能性があります。

PHP の動作の説明

PHP のドキュメントによると、ドットは PHP 変数名では有効な文字ではありません。 PHP は構文エラーを防ぐためにそれらをアンダースコアに変換します。次の文字もアンダースコアに変換されます:

  • スペース ( )
  • 開き角かっこ ([)
  • さまざまな非 ASCII 文字

自動を無効にする置換

残念ながら、この自動置換動作を無効にする組み込みの 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 サイトの他の関連記事を参照してください。

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