2

例如,如何检查两个 URL 字符串是否相同

http://example.com

http://example.com/

https://example.com/

http://example.com/#

以上所有网址都指向同一页面

假设我的数据库中有一个 url 目录,并且我正在向已经存在的数据库添加一个 url。我如何使用 PHP 验证上述场景的唯一性。

4

1 回答 1

4

用于parse_url将 URL 分解为多个部分,并比较那些必须与您对“相同”的定义相匹配的部分。

例如:

function areUrlsTheSame($url1, $url2)
{
    $mustMatch = array_flip(['host', 'port', 'path']);
    $defaults = ['path' => '/']; // if not present, assume these (consistency)
    $url1 = array_intersect_key(parse_url($url1), $mustMatch);
    $url2 = array_intersect_key(parse_url($url2), $mustMatch);

    return $url1 === $url2;
}

看到它在行动

于 2013-09-20T11:18:13.693 回答