$ _GET替换一些char

时间:2017-01-31 17:37:05

标签: php get

我想通过$_GET发送数据,数据如下所示 7U0e1rK6SmjOJuLyAMc5ZL+EsuGqKo2SRSTq3cQlI20=

$_GET变量为voucher_code

当我试图回复$_GET['voucher_code']时,我总是以

结束

7U0e1rK6SmjOJuLyAMc5ZL EsuGqKo2SRSTq3cQlI20= *注意“+”被“空格”

取代

如何阻止$_GET这样做?用“空格”替换我的“+”

任何回复赞赏

1 个答案:

答案 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=

请注意,当您收到$_GETit already passes urldecode

的数据时