我有以下3个网址
http://www.yahoo.co.uk
和http://yahoo.co.uk
,不同之处在于后者中没有www
。在这两个url上使用parse_url时,输出如下。
{"scheme":"http","host":"www.yahoo.co.uk"}
{"scheme":"http","host":"yahoo.co.uk"}
两个网址都是相同的,使用==
或使用strpos
进行比较或使用.
将文本展开,并比较每个数组似乎并不理想。
我已经查看了有关比较URL的Stack Overflow上的其他问题,但它们似乎没有解决我上面提到的问题。感谢有人能帮我弄清楚如何解决这个问题。
答案 0 :(得分:3)
简单的辅助函数:
function compareUrls($a, $b) {
$a = parse_url($a, PHP_URL_HOST);
$b = parse_url($b, PHP_URL_HOST);
return trimWord($a) === trimWord($b);
}
function trimWord($str) {
if (stripos($str, 'www.') === 0) {
return substr($str, 4);
}
return $str;
}
var_dump(compareUrls('http://www.yahoo.co.uk', 'http://yahoo.co.uk'));
输出:
bool(true)