为什么PHP可以将%2B转换为空字符串而不是+?

时间:2017-02-02 11:08:35

标签: php laravel-5.3

我在PHP buildin-server上运行Laravel 5.3应用程序并尝试执行以下请求:

api/people?sort=%2Bname

我希望%2B会转换为+,但由于某些原因,它不会发生:

$request->input('sort') => " name"

这种行为可以与PHP设置相关吗?

1 个答案:

答案 0 :(得分:0)

似乎有一个PHP的东西,测试它:

print_r(rawurldecode($_SERVER['QUERY_STRING']));//Result:content=+name

print_r(urldecode($_SERVER['QUERY_STRING']));//Result:content= name

解决方法:

$result=array();
array_map(function($a) use (&$result){
              $a=explode('=',$a);        
              $result[$a[0]]=$a[1];
},explode('&',rawurldecode($_SERVER['QUERY_STRING'])));

print_r($result);