支持英文
不支持中文
在 laravel 中
http://laravel.dev/广州
可以获取 city=广州
支持英文
不支持中文
在 laravel 中
http://laravel.dev/广州
可以获取 city=广州
这是你编码的问题.
@momoca 首先,很感谢你的回答,虽然并不能帮助我处理好这个问题。 我可以确定我并不会因为编码的原因导致这个错误 以下是我用到的代码片段
# application/route.php
'[api]' => [
'user/:search' => ['Api/User/search', ['method' => 'get']],
],
#application/api/controller/User.php
public function search(){
dump(request()->get('search'));
return 'user search name '.input('search');
}
get /api/user/搜索?search=易&a=1
get /api/user/search?search=易&a=1
这是你编码的问题.
我并不认可是这个原因导致的
//url:http://domain.com/message-index.html?search=%E6%98%93
echo url('Message/index@center', 'search=易');
var_dump(input());
var_dump(input('search'));
这个没有问题. 如果正常应该url中的中文应该是以上(%E6%98%93)哪样的.当你使用url函数生成连接时会自动进行转码.
我知晓像您这样的使用方式是没有问题的,而我出现的问题并非像您说的那样!
我无法通过自定义路由, 直接获取链接 /user/:search
上的中文参数而可以获取字母数字等
# tp5 route 中文参数例子
//路由中设置
'user/:search' => ['User/search', ['method' => 'get']],
get /user/易
// 期待结果
input('search') == '易'
我可在 laravel5.2 中实现该功能 而 tp5 不行
事实上在 ?s=易这种处理上并无问题
您可以测试一下,十分感谢!
对于 /user/zh1
这样的支持拓展到 /user/易
以便实现类似
/s/搜索内容
或者 /t/标签
这样的功能
@momoca
恩,找到问题了.这是我之前提过一个问题.https://github.com/top-think/framework/issues/267
\think\Route::domain('center', function () {
\think\Route::get('user/:search', 'User/index');
});
echo url('User/index@center', 'search=易');
返回页代码
print_r(input());
echo strtolower(APP::$namespace . DS . $this->request->module() . DS . config('url_controller_layer') . DS . $this->request->controller() . '::' . $this->request->action());
结果如下:
view-source:http://center.domain.com/user-%E6%98%93.html
//----
Array
(
[search] => 易
)
app\center\controller\user::index
这是你期望的吧.
事实上
get http://tp5.com/user/%E6%98%93.html
一直都可以获取到值,如您所示
Array
(
[search] => 易
)
而其错误的是内容编码不对
我尝试更清楚的弄明白其原因
结果是惊人的
我无法理解的结果,我必须指定浏览器为GBK编码才能正确的显示他
@momoca
这是我使用 laravel 获取的中文URL参数
# app/Http/routes.php
Route::get('{city?}', 'HomeController@index');
# app/Http/Controllers/HomeController.php
public function index(Request $request){
echo($request->city);
die;
}
你去补习一下基本的文件编码知识吧.这个不是tp5的问题.我也已经测试过了.框架本身没有问题. 1.保证您的框架代码是从git下载的. 2.加载的文件都是utf-8的. 3.实在不行就加header.