php URL 解码得到 '+'来自网址

发布于 2024-10-28 13:03:31 字数 582 浏览 7 评论 0原文

所以我试图对一个 url 进行编码/解码,解码时将返回该 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;
?>

So I am trying to encode/decode a url that when decoded will return the encoded + symbols from teh url. For example, I encodewebsite.com/index.php?eq=1+12 which when encoded turns the + into %2B, as it should. When I retrieve the value from $_REQUEST['eq'] and use urldecode() it echo's as "1 12". I cannot seem to get the decode to bring back the + so to speak. Am I doing something wrong here, or is there a more efficient/better way to go about doing this? Here is the exact encode/decode lines I use.

Submit Page

<?php
$eq = "1+12";
$send = '<a href="website.com/index.php?eq='.urlencode($eq).'</a>';
echo $send;

Retrieval page

<?php
$eq = urldecode($_REQUEST['eq']);
echo $eq;
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

○闲身 2024-11-04 13:03:31

不要运行 urldecode$_REQUEST 中的数据会自动为您解码。

URL 中的加号是一个编码空格。 PHP 自动将十六进制值解码为 +。然后,通过 urldecode 运行结果,您手动(错误地)将 + 解码为

Don't run urldecode, the data in $_REQUEST is automatically decoded for you.

A plus sign, in a URL, is an encoded space. PHP decodes the hex value to a + automatically. Then, by running the result through urldecode, you are manually (and incorrectly) decoding the + to a .

何以笙箫默 2024-11-04 13:03:31

尝试使用函数 rawurldecode() 而不是 urldecode()

Try using the function rawurldecode() instead of urldecode()

淡紫姑娘! 2024-11-04 13:03:31

我使用 encodeURIComponent() 在 JavaScript 中对其进行编码,并使用 rawurldecode() 在 PHP 中对其进行解码,它可以正确地为我编码/解码,包括“+”,但是 urldecode()

I encode it in JavaScript with encodeURIComponent() and decode it in PHP with rawurldecode() and it encodes/decodes properly for me, including the "+", but NOT with urldecode()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文