所以我正在尝试编码/解码一个 url,解码后将从 teh url 返回编码的 +
符号。例如,我对 website.com/index.php?eq=1+12
进行编码,编码后会将 +
转换为 %2B
,如这应该。当我从 $_REQUEST['eq']
检索值并使用 urldecode()
时,它回显为 "1 12"
。可以这么说,我似乎无法获得解码以恢复 +
。我在这里做错了什么,还是有更有效/更好的方法来做这件事?这是我使用的确切编码/解码行。
提交页面
<?php
$eq = "1+12";
$send = '<a href="website.com/index.php?eq='.urlencode($eq).'</a>';
echo $send;
检索页面
<?php
$eq = urldecode($_REQUEST['eq']);
echo $eq;
?>
最佳答案
不要运行urldecode
,$_REQUEST
中的数据会自动为你解码。
URL 中的加号是经过编码的空格。 PHP 自动将十六进制值解码为 +
。然后,通过 urldecode
运行结果,您手动(并且错误地)将 +
解码为 。
关于php URL解码从URL中获取 '+',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495920/