使用PHP比较URL

时间:2013-09-29 04:47:34

标签: php url compare string-comparison

我有以下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"}

两个网址都是相同的,使用==或使用strpos进行比较或使用.将文本展开,并比较每个数组似乎并不理想。

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

1 个答案:

答案 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)