如何获取 thinkphp6 中完整的中文 url 参数
在使用 thinkphp6 进行路由时,你可能会遇到需要获取中文 url 参数的情况。然而,默认情况下,路由只会返回解码后的中文部分,如“多米尼克”,而不是完整的“多米尼克•奥布莱恩”。
要解决这个问题,你需要为路由匹配规则设置一个特定的正则表达式模式,如下所示:
route::rule('/author-:name', 'index/index/author') ->pattern(['name' => '[w-•]+']);
此正则表达式模式允许参数“name”匹配任意数字、字母、下划线、连字符和句点,这意味着它将匹配完整的中文字符串“多米尼克•奥布莱恩”。
立即学习“PHP免费学习笔记(深入)”;
修改路由匹配模式后,你就可以在控制器中使用以下代码获取完整的中文参数:
$name = $this->request->param('name');