我正在尝试使用PHP比较两个网址,确保域名相同。它不能是子域。它必须是字面上相同的域。例如:
与http://www.google.co.uk
相比, true
将验证为http://www.google.co.uk/pages.html
。
但
与http://www.google.co.uk would
相比, false
验证为http://www.something.co.uk/pages.html
。
答案 0 :(得分:14)
使用parse_url(),并将两次调用返回的数组中的“host”索引与parse_url()
进行比较。
答案 1 :(得分:7)
$url1 = parse_url("http://www.google.co.uk");
$url2 = parse_url("http://www.google.co.uk/pages.html");
if ($url1['host'] == $url2['host']){
//matches
}
答案 2 :(得分:2)
简单,使用parse_url()
$url1 = parse_url('http://www.google.co.uk');
$url2 = parse_url('http://www.google.co.uk/pages.html');
if($url1['host'] == $url2['host']){
// same domain
}
答案 3 :(得分:1)
您可以将parse_url用于此
$url1 = parse_url('http://www.google.com/page1.html');
$domain1 = $url1['host'];
$url2 = parse_url('http://www.google.com/page2.html');
$domain2 = $url2['host'];
if($domain1 == $domain2){
// something
}
答案 4 :(得分:1)
扩展Ariel给出的答案,您可以使用的代码类似于以下代码:
<?php
compare_host('http://www.google.co.uk', 'http://www.something.co.uk/pages.html');
function compare_host($url1, $url2)
{
// PHP prior of 5.3.3 emits a warning if the URL parsing failed.
$info = @parse_url($url1);
if (empty($info)) {
return FALSE;
}
$host1 = $info['host'];
$info = @parse_url($url2);
if (empty($info)) {
return FALSE;
}
return (strtolower($host1) === strtolower($info['host']));
}