4
tp5.1
$url=url('/demo',['a'=>'a a++a']); 在pathinfo的模式下生成路由: /demo/a/a++a%2B%2Ba.html; 然后使用 Request::param("a");获取参数会变成 :a++a++a
空格会变成+号,输不出空格。怎么解决啊?
tp5.1
$url=url('/demo',['a'=>'a a++a']); 在pathinfo的模式下生成路由: /demo/a/a++a%2B%2Ba.html; 然后使用 Request::param("a");获取参数会变成 :a++a++a
空格会变成+号,输不出空格。怎么解决啊?
这个原因是tp在构建url时用的是 urlencode
编码,把空格转为加号。这也导致了在新url地址下,$_SERVER['PATH_INFO']
的值是 /demo/a/a+a++a.html
。
解决这个问题的话可以自行用rawurencode
方式进行编码。或者干脆将上面构建好的url地址替换+号: $url = str_replace('+', '%20', $url);
两者编码方式就只有对空格的处理方式不一样而已。
设置 url_common_param 为true 使用普通模式传参就不会有类似的问题