php检查域是否等于值,然后执行操作

时间:2009-07-13 21:45:57

标签: php

我需要获取一个包含URL的变量,并检查域是否等于某个域,如果是,则回显一个变量,如果不是,则回显另一个。

$domain = "http://www.google.com/docs";
if ($domain == google.com)
{ echo "yes"; }
else
{ echo "no"; }

我不知道怎么写第二行检查域,看看$ domain是否包含if语句中的url。

5 个答案:

答案 0 :(得分:14)

这是通过使用parse_url

完成的
$host = parse_url($domain, PHP_URL_HOST);
if($host == 'www.google.com') {
    // do something
}

答案 1 :(得分:7)

稍微更高级的域名查找功能。

$address = "http://www.google.com/apis/jquery";

if (get_domain($address) == "google.com") {
  print "Yes.";
}

function get_domain($url)
{
    $pieces = parse_url($url);
    $domain = isset($pieces['host']) ? $pieces['host'] : '';
    if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
        return $regs['domain'];
    }
    return false;
}

答案 2 :(得分:2)

除了其他答案,您还可以使用正则表达式,例如在域名中查找google.com的正则表达式

$domain = "http://www.google.com/docs";
if (preg_match('{^http://[\w\.]*google.com/}i', $domain))
{

}

答案 3 :(得分:1)

您是否尝试过parse_url()

请注意,您可能还希望在explode()'.'生成的域名,具体取决于您对“域名”的确切含义。

答案 4 :(得分:1)

您可以使用parse_url function将URL划分为单独的部分(协议/主机/路径/查询字符串/等)。如果您还想允许www.google.com成为google.com的同义词,则需要添加额外的子字符串检查(使用substr),以确保主机的后半部分与您所在的域匹配寻找。