插件窝 干货文章 thinkphp url怎么写成不带反斜杠

thinkphp url怎么写成不带反斜杠

地址 斜杠 url 拼接 169    来源:    2024-10-26

在使用 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 地址来实现不带反斜杠的效果。示例代码如下:

// 获取当前请求的根URL地址
$baseUrl = request()->root(true);

// 获取控制器名和方法名
$controller = request()->controller();
$action = request()->action();

// 拼接URL地址
$url = $baseUrl . '/' . $controller . $action;

echo $url;

通过以上代码,我们可以手动拼接出不带反斜杠的 URL 地址。需要注意的是,手动拼接 URL 地址可能会带来一些风险和问题,因此在实际应用中需要谨慎使用。

总之,以上两种方法都可以实现在 ThinkPHP 中生成不带反斜杠的 URL 地址。在具体应用中,我们可以根据实际情况选择合适的方式来生成 URL 地址。