我想通过$_GET
发送数据,数据如下所示
7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20=
且$_GET
变量为voucher_code
当我试图回复$_GET['voucher_code']
时,我总是以
7U0e1rK6SmjOJuLyAMc5ZL EsuGqKo2SRSTq3cQlI20=
*注意“+”被“空格”
如何阻止$_GET
这样做?用“空格”替换我的“+”
任何回复赞赏
答案 0 :(得分:1)
为了保存您要发送的数据,您必须首先urlencode
:
返回一个字符串,其中除-_之外的所有非字母数字字符。已被替换为百分号(%),后跟两个十六进制数字和空格,编码为加号(+)。它的编码方式与编码WWW表单中的发布数据的方式相同,这与application / x-www-form-urlencoded媒体类型的方式相同。这与»RFC 3986编码(参见rawurlencode())的不同之处在于,由于历史原因,空格被编码为加号(+)。
然后,当您收到数据时,您必须urldecode
:
var_dump(urlencode('7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20='));
// result is 7U0e1rK6SmjOJuLyAMc5ZL%2BEsuGqKo2SRSTq3cQlI20%3D
var_dump(urldecode('7U0e1rK6SmjOJuLyAMc5ZL%2BEsuGqKo2SRSTq3cQlI20%3D'));
// result is 7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20=
请注意,当您收到$_GET
,it already passes urldecode
。