1
この解決法は、同等のURLを正規化して一致させることができましたが、より洗練されたものがあるかどうかを知りたい場合、PHPにURL正規化機能はありませんか?URLを正規化/正規化と一致させる
function urlMatch($url1, $url2)
{
// parse the urls
$r1 = parse_url($url1);
$r2 = parse_url($url2);
// get the variables out of the queries
parse_str($r1['query'], $v1);
parse_str($r2['query'], $v2);
// match the domains and paths
if ($r1['host'] != $r2['host'] || $r1['path'] != $r2['path'])
return false;
// match the arrays
foreach ($v1 as $key => $value)
if (array_key_exists($key, $v2) && $value != $v2[$key])
return false;
// if we haven't returned already, then the queries match
return true;
}
...コードに空のクエリに対処するためのビットを変更しました正準化を取り除き、正規化を取り除きます。 SOのコンテキストでは、「正規化」タグはデータベースの正規化を指します。正規化は、適切なタイプの専門家を引き付ける可能性が高くなります。 –
この関数は間違っています! 'schema'と' port'はどうでしょうか?または、2番目のURLにのみ存在する追加の引数? –
私はもっとエレガントで正しいものが必要だと思う:( –