首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Yii索引文件中获取servername

问如何在Yii索引文件中获取servername
EN

Stack Overflow用户
提问于 2014-05-06 18:15:57
回答 1查看 4.9K关注 0票数 1

如何在Yii的index.php文件中获取域名(服务器名)?我想从它中检测到子域名。

EN

回答 1

Stack Overflow用户

发布于 2014-05-07 06:34:07

CHttpRequest是您需要的类,它封装了$_SERVER变量;

代码语言:javascript
复制
http://www.yiiframework.com/doc/api/1.1/CHttpRequest

您需要的函数是CHttpRequest::getBaseUrl() (不应该静态调用)如果加载了应用程序,可以使用http://www.yiiframework.com/doc/api/1.1/CHttpRequest#getBaseUrl-detail调用它

使用这种方法而不是直接使用$_SERVER的优点是CHttpRequest解决了不同Web服务器之间处理$_SERVER的方式不一致的问题。

还请注意,显然可以在加载框架之后调用Yii类;因此,当在CHttpRequest中使用index.php时,确保在加载Yii类之后调用;

强烈建议您不要在index.php上添加任何这样的逻辑--这个文件实际上是针对每个请求调用的;您的子域毕竟不会在每个请求上更改。

您可以在控制器或RunonceCommand中直接调用RunonceCommand,并使用parse_url和explode获取具有以下内容的子域

代码语言:javascript
复制
//Works for multiple subdomains like 'http://sub1.sub2.example.com' as well;
public function getSubDomain($url){
    $parsedUrl = parse_url($url);
    $hostPart = explode('.', $parsedUrl['host']);
    $subdomains = array_slice($hostPart, 0, count($host) - 2 );
    return $subdomains;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23502016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档