获取域名(没有协议的基本网址)

mrd*_*iri 2 cakephp

如何获得应用程序域名?(我的意思是没有协议的基本网址http://https://)

因此,如果应用程序安装在" http://sub.example.com/app "上,我想获得"sub.example.com".

gaz*_*eth 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());
Run Code Online (Sandbox Code Playgroud)