2

たとえば、2 つの URL 文字列が同じかどうかを確認する方法

http://example.com

http://example.com/

https://example.com/

http://example.com/#

上記の URL はすべて同じページを指しています

データベースに URL のディレクトリがあり、既に存在するデータベースに URL を追加するとします。PHPを使用して上記のシナリオの一意性を検証するにはどうすればよいですか.

4

1 に答える 1

4

parse_urlURL を部分に分解し、「同じ」の定義に一致する必要があるものを比較するために使用します。

例えば:

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 に答える