在使用 thinkphp 进行网站开发的过程中,经常会用到 url 地址生成功能。默认情况下,thinkphp 在生成 url 地址时会在控制器名和方法名之间添加一个反斜杠,例如:
// 生成 URL 地址 $url = url('Index/index'); echo $url; // 输出:/index.php/Index/index.html
但是,在某些场景中,我们可能需要不带反斜杠的 URL 地址,例如在进行前端路由跳转时。本文将介绍如何在 ThinkPHP 中生成不带反斜杠的 URL 地址。
我们可以通过修改 ThinkPHP 的配置文件来实现 URL 地址不带反斜杠。在 config.php 配置文件中,找到 url_common_param 项,将其设置为 false 即可。示例代码如下:
// 关闭默认URL模式中控制器与操作之间的分隔符“/” 'url_common_param' => false,
修改完毕后,我们可以重新生成 URL 地址测试一下:
// 生成 URL 地址 $url = url('Index/index'); echo $url; // 输出:/index.phpIndexindex.html
可以看到,此时生成的 URL 地址已经没有反斜杠了。
立即学习“PHP免费学习笔记(深入)”;
除了修改配置文件外,我们还可以通过手动拼接 URL 地址来实现不带反斜杠的效果。示例代码如下:
// 获取当前请求的根URL地址 $baseUrl = request()->root(true); // 获取控制器名和方法名 $controller = request()->controller(); $action = request()->action(); // 拼接URL地址 $url = $baseUrl . '/' . $controller . $action; echo $url;
通过以上代码,我们可以手动拼接出不带反斜杠的 URL 地址。需要注意的是,手动拼接 URL 地址可能会带来一些风险和问题,因此在实际应用中需要谨慎使用。
总之,以上两种方法都可以实现在 ThinkPHP 中生成不带反斜杠的 URL 地址。在具体应用中,我们可以根据实际情况选择合适的方式来生成 URL 地址。