1

我使用自己的 AJAX 代码发送数据,它工作,AJAX 发送 & PHP 代码获取一个变量,但是:

当我尝试发送链接(例如:http ://abc.com/abc++ )或类似文件夹名称的 var时,+它会返回不带+.

AJAX 发送数据&data='+encodeURIComponent(data)+'和 PHP 获取urldecode($data);

+我的问题是如何在不从字符串中删除字符的情况下从 POST 数据中获取 PHP 变量。

4

2 回答 2

0

rawurldecode()在 PHP 中使用。rawurldecode()不会将加号 (+) 解码为空格urldecode()

这样,无论您的 JavaScript 将加号字符作为文字字符串+还是作为编码字符串发送%2B,PHP 都会将其解码为加号字符。

于 2012-11-25T17:43:22.683 回答
0

+在 URL 中使用时是特殊含义字符并替换空格 ( )。如果你想传递+文字,你也必须对其进行编码(to %2b)。通常,您应该始终传递用于构建 URL 的任何内容urlencode()以避免出现问题。

看看它是怎么回事:

echo urlencode(' + ');   // spaces around `+`

+%2B+

更多关于RFC 3986PHP 文档中的 url 编码

于 2012-11-25T17:43:40.220 回答