如何获取应用域名? (我的意思是没有协议http://
或https://
)
因此,如果应用已安装在' http://sub.example.com/app'上,我想获得&sub'example.com'。
答案 0 :(得分:6)
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());
答案 1 :(得分:1)
我在config.php / bootstrap.php中使用它,它位于config文件夹中以获取带文件夹的url app域
$_SERVER['HTTP_HOST'].dirname(dirname(dirname($_SERVER['PHP_SELF'])));