0

私が持っている: http://www.example.com/index.php?amount=15%252E8

index.php で:

    $test = $_GET['amount'];
    echo $test; 

    // Output: 15%2E8

しかし、 15%2E8は必要ありません。15.8が必要です。

    $test = $_GET['amount'];
    $test = urldecode($test);
    echo $test; 

    //Output: 15.8

しかし、 http: //us2.php.net/manual/en/function.urldecode.phpでは次のように警告されています。

警告: スーパーグローバル $_GET と $_REQUEST は既にデコードされています。$_GET または $_REQUEST の要素で urldecode() を使用すると、予期しない危険な結果が生じる可能性があります。

$_GET['amount']が15.8にならないのはなぜですか?!

4

1 に答える 1

4

15%252E8「15%2E8」の URL エンコード バージョンです。
15%2E8「15.8」のURLエンコード版です。
「15.8」が必要な場合15%2E8は、URL を送信する必要があります。

つまり、どこかで URL エンコードが多すぎます。

于 2013-10-30T13:58:35.490 に答える