1

我有以下 3 个网址

http://www.yahoo.co.ukhttp://yahoo.co.uk,区别在于后者没有www。在这两个 url 上使用 parse_url 时,输出如下。

{"scheme":"http","host":"www.yahoo.co.uk"}

{"scheme":"http","host":"yahoo.co.uk"}

两个 url 是相同的,使用 a==或使用strpos或分解文本比较它们.并比较每个数组似乎并不理想。

我查看了有关比较 URL 的 Stack Overflow 上的其他问题,但它们似乎并没有解决我上面提到的问题。感谢有人可以帮助我弄清楚如何解决这个问题。

4

1 回答 1

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)
于 2013-09-29T05:04:09.513 回答