如何获取应用域名? (我的意思是没有协议的基本网址
http://
或https://
)
因此,如果应用程序安装在“http://sub.example.com/app”上,我想获取“sub.example.com”。
有 PHP 全局 $_SERVER['HTTP_HOST'] - 这将返回没有协议的域,但不会给你一个子目录,例如如果您的应用程序位于 www.domain.com/myapp/app。
假设您指的是 CakePHP 应用程序(给定问题上的标签),您可以在 2.4 版之前使用以下常量:
FULL_BASE_URL
在2.4版本中您可以使用:
路由器::fullbaseUrl()
这将返回带有 http:// 或 https:// 的基本 URL。然后,您可以执行正则表达式替换来删除该部分。
尝试:
function replace_http($url) {
$pattern = "https{0,1}:\/{2}";
return preg_replace($pattern, "", $url);
}
$baseUrl = replace_http(Router::fullBaseUrl());
我在位于 config 文件夹中的 config.php/bootstrap.php 中使用它来获取带有文件夹的 url 应用程序域
$_SERVER['HTTP_HOST'].dirname(dirname(dirname($_SERVER['PHP_SELF'])));
parse_url(Router::fullBaseUrl(), PHP_URL_HOST)