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 回答