[解決済み] PHP に $_GET や $_POST 配列の '.' 文字を置換させないようにさせるには?
質問
PHP の変数を
.
を含む PHP 変数を $_GET で渡した場合、PHP はそれらを自動的に
_
文字に置き換わります。例えば
<?php
echo "url is ".$_SERVER['REQUEST_URI']."<p>";
echo "x.y is ".$_GET['x.y'].".<p>";
echo "x_y is ".$_GET['x_y'].".<p>";
...は以下のように出力します。
url is /SpShipTool/php/testGetUrl.php?x.y=a.b
x.y is .
x_y is a.b.
... 私の質問はこれです:そこに はあるのでしょうか? はあるのでしょうか?私はこれに値するために何をしたのか、私の人生のために把握することはできません。
私が使用している PHP のバージョンは、5.2.4-2ubuntu5.3 です。
どのように解決するのですか?
PHP.netの説明で、なぜそうなるのかを説明しています。
入力される変数名におけるドット
通常、PHP は変数名が変更されることはありません。 変数がスクリプトに渡されたときに、変数名を変更することはありません。 スクリプトに渡される変数名を変更することはありません。しかし ドット (ピリオド。 フルストップ) は有効な文字ではないことに注意しましょう。 は PHP の変数名として有効な文字ではないことに注意しましょう。その理由は を見てください。
<?php $varname.ext; /* invalid variable name */ ?>
さて、パーサーが見るのは という名前の変数が見つかります。 という変数と、それに続く文字列 連結演算子、そして 素文字列 (つまり、引用符で囲まれていない文字列) 既知のキーや予約語にマッチしない ext'です。明らかに、これは は意図した結果にはなりません。
このような理由から、重要なのは PHPは自動的に は入力された変数名のドットをアンダースコアに置き換えます。 をアンダースコアに置き換えます。
それは http://ca.php.net/variables.external .
また、曰く このコメント によると、これらの他の文字はアンダースコアに変換されます。
<ブロッククオートPHP が _ (アンダースコア) に変換するフィールド名文字の完全なリストは以下のとおりです (ドットだけではありません)。
- chr(32) ( ) (スペース)
- chr(46) (.) (ドット)
- chr(91) ([) (開き角括弧)
- chr(128)~chr(159)(各種)
で、引っかかったようなので、スクリプト内でアンダースコアをドットに戻すには、以下の方法で変換する必要があります。 dawnerd の提案 を使ってください (私なら str_replace を使いますが)。
関連
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] PHPを使って現在の年を取得するにはどうすればよいですか?
-
[解決済み] PHPでリクエストタイプを検出する(GET, POST, PUT, DELETE)
-
[解決済み] PHPで完全なURLを取得する
-
[解決済み] PHP の配列を保存するための好ましい方法 (json_encode vs serialize)
-
[解決済み] PHP の定数には配列が含まれますか?
-
[解決済み】PHP "php://input" vs $_POST
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】空の配列要素を削除する
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?