提供された URL が現在ナビゲートされているものと一致するかどうかを検出する必要があります。以下はすべて有効ですが、意味的には同等の URL です。
https://www.example.com/path/to/page/index.php?parameter=value
https://www.example.com/path/to/page/index.php
https://www.example.com/path/to/page/
https://www.example.com/path/to/page
http://www.example.com/path/to/page
//www.example.com/path/to/page
//www/path/to/page
../../../path/to/page
../../to/page
../page
./
最終的な関数は、指定された URL が現在のページを指している場合、またはそうでない場合に返さなければなりません。予想される URL のリストがありません。これは、現在のページにリンクするときにリンクを無効にしたいクライアントに使用されます。これらはこのサイトの現在のページを示していないため、parameters を無視したいことに注意してください。次の正規表現を使用するところまで行きました:true
false
/^((https?:)?\/\/www(\.example\.com)\/path\/to\/page\/?(index.php)?(\?.+=.*(\&.+=.*)*)?)|(\.\/)$/i
ここhttps?
で、www
、\.example\.com
、\/path\/to\/page
、およびindex.php
は動的に検出され$_SERVER["PHP_SELF"]
、正規表現形式に変換されますが、 のような相対 URL とは一致しません../../to/page
。
編集:私は正規表現で少し先に進みました: refiddle.com/gv8 では、特定のページの正規表現を動的に作成するために PHP が必要なだけです。