首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用abc.domain.com或abc.sub.domain.com检测"abc“?

如何使用abc.domain.com或abc.sub.domain.com检测"abc“?
EN

Stack Overflow用户
提问于 2012-11-21 20:19:56
回答 5查看 223关注 0票数 1

我需要检测用户是否从某个子域访问我的站点。如何检测以下示例并使用PHP标记它?我只想检测"abc“是否是子域,仅此而已,但它必须与"abc”之后的其他领域一起工作。

  • http://abc.domain.com/
  • http://abc.domain/
  • http://abc.sub.domain.com/

是的,他们在"abc“子域名上。

  • http://domain.com/
  • http://xyz.domain.com/
  • http://www.domain/
  • http://sub.domain.com/
  • http://xyz.sub.domain.com/

不,他们不是。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:23:34

这将返回子域:

代码语言:javascript
复制
array_shift(explode(".",$_SERVER['HTTP_HOST'])); 
票数 2
EN

Stack Overflow用户

发布于 2012-11-21 20:22:50

您可以检查HTTP_HOSTSERVER_NAME$_SERVER变量中。

代码语言:javascript
复制
<?php
if(strpos($_SERVER['SERVER_NAME'], 'abc.domain.com') !== false) {
    //do something
}
?>
票数 2
EN

Stack Overflow用户

发布于 2012-11-21 20:27:07

您可以从$_SERVER超级全局中访问主机名,如下所示:

代码语言:javascript
复制
$domain = $_SERVER['HTTP_HOST']

然后有许多方法来确定这个值是否以abc开头。最简单的可能就是stripos

代码语言:javascript
复制
if(stripos('abc', $domain) === 0) {
    // you found it
}

请注意,在这里使用===而不是==非常重要。如果您使用==,并且在$domain中找不到子字符串,stripos将返回false,使用== 0将在条件中计算为true

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13501438

复制
相关文章

相似问题

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