thinkphp5 url请求get获取中文参数,打印结果为空

直接贴问题,如下:
一、
1.请求地址:http:/localhost/index.php/rec...
2.打印拿到的参数:
代码:dump(input('param.'));
参数结果:

array(3) {
  ["gameName"] => string(0) ""
  ["appId"] => string(2) "06"
  ["userId"] => string(32) "123123"
}

二、
将url请求地址的参数部分改成传统的&拼接的方式,即可获取到中文参数
请求地址:http://localhost/index.php/re...
array(3) {
["gameName"] => string(12) "山西麻将"
["appId"] => string(2) "06"
["userId"] => string(32) "123123"
}

求解第一种请求方式为什么拿不到中文参数?

阅读 7.7k
3 个回答

input是thinkphp5的助手函数,与Request::instance()->param()的一样的,今天翻手册发现Request::instance()->param()是过滤参数后的结果,用Request::instance()->param(false)获取原始数据,再对中文参数用iconv()进行转码即可获取到中文。
clipboard.png

$request = request();
echo '请求参数:';
dump($request->param());

你看看这样可以不

我们来分析一下这个这个链接

http://localhost/index.php/recharge_show/gameName/山西麻将/appId/06/userId/123123

官方标准url解析

http://serverName/index.php/module/controller/action/param/value/...

也就是说recharge_show是模块,gameName是控制器,山西麻将是action,后面的才是对应param/value
如果你有使用路由,

recharge_show/:gameName/:appId/:userId'=>'模块/控制器/recharge_show',
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题