使用服务器变量的域后缀中的PHP通配符?

时间:2013-05-16 20:26:15

标签: php regex cross-domain host

我正在使用PHP服务器变量检查域是否为真,然后执行某些操作。我的问题是,其他开发人员将在本地使用相同的站点进行开发/ Git,但他们可能会使用不同的域名后缀命名,例如.dev.local.whatever

$host = $_SERVER['HTTP_HOST'];
if($host == "subdomain1.example.com" or $host == "subdomain1.example.dev") {

 // do something!

}

网址的其余部分对每个人都保持不变。我可以看到,如果我们必须考虑dev使用的每个本地domian后缀而不是大量的"or"语法,这可能最终会过于冗长,以某种方式使用带有类似此伪装的类似的通配符会很好下面:

 $host = $_SERVER['HTTP_HOST'];
    if($host == "subdomain1.example.*") {

     // do something!

    }

...但我猜我需要使用正则表达式。我google了一下,真的找不到多少。我的regex-foo非常缺乏,因为我是一个前端/前端开发者。

1 个答案:

答案 0 :(得分:1)

如果开头始终相同,请使用strpos()

if (strpos($_SERVER['HTTP_HOST'], 'subdomain.example.') === 0) {
    // do something
}

如果区域不同,请使用正则表达式

if (preg_match('/.+\.example\.(org|com|dev)$/', $_SERVER['HTTP_HOST'])) {
    // do something
}