PHP:在网址$ _GET urldecode编码解码点

问题描述:

我: 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 [ '量']没有得到15.8?!

+0

您发送的'金额'值是多少 – Patrick

+0

您的网址示例显示15%252E8,但您的输出示例显示15%2E8。这是一个错字还是真的从中间的'25'落下? – shanabus

15%252E8是“15%2E8”的URL编码版本。
15%2E8是“15.8”的URL编码版本。
如果你想要“15.8”,你应该在URL中发送15%2E8

I.e.你在某个地方的URL编码太多了。