我需要获取一个包含URL的变量,并检查域是否等于某个域,如果是,则回显一个变量,如果不是,则回显另一个。
$domain = "http://www.google.com/docs";
if ($domain == google.com)
{ echo "yes"; }
else
{ echo "no"; }
我不知道怎么写第二行检查域,看看$ domain是否包含if语句中的url。
答案 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),以确保主机的后半部分与您所在的域匹配寻找。