$ _GET for + in url get request?

时间:2014-08-08 13:55:54

标签: php yii get

我的项目Url在yii中是这样的:

 http://localhost/php_pro_106/activate/Test?JJ=HEY+OOO

在我的行动中:

public function actionTest()
   {
   print_r($_GET);
 }

我得到了:

 Array ( [JJ] => HEY OOO )

但我应该得到:

 Array ( [JJ] => HEY+OOO ) 

我应该为此做些什么,我需要相同的网址?

3 个答案:

答案 0 :(得分:2)

网址中的+表示空格。所以你得到了你应该得到的结果。

如果您想对网址中的+字符进行编码,则应将其表示为%2B

http://localhost/php_pro_106/activate/Test?JJ=HEY%2BOOO

如果使用PHP以编程方式生成URL,则可以使用urlencode函数。

$keyname = "JJ";
$data = "HEY+OOO";
$url = "http://localhost/php_pro_106/activate/Test?" . urlencode($keyname) . "=" . urlencode($data);

答案 1 :(得分:0)

您需要对您的网址进行编码(例如,在php中使用urlencode)。 +需要成为%2B

http://localhost/php_pro_106/activate/Test?JJ=HEY%2BOOO

答案 2 :(得分:0)

根据RFC 2396,

“+”是保留字符之一。

如果您希望在示例中使用“+”,则应使用网址编码。

http://localhost/php_pro_106/activate/Test?JJ=HEY%2BOOO

如果您从代码生成URL,请使用urlencode()函数生成您的URL。