ホームページ >バックエンド開発 >PHPチュートリアル >正規表現を使用して URL を照合するにはどうすればよいですか?
正規表現による URL のマッチング
正規表現は最初は難しいかもしれませんが、さまざまなデータ型に対して強力なパターン マッチング機能を提供します。 URL を抽出するコンテキストでは、URL 形式のバリエーションに対応する柔軟なパターンが必要です。
主要なプロトコルの有無にかかわらず URL をキャプチャできる 1 つの堅牢な正規表現 (例: "http://www" または " www") は次のとおりです:
((https?|ftp)://)? // Optional SCHEME ([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)? // Optional User and Pass ([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address (:[0-9]{2,5})? // Optional Port (/([a-z0-9+$_%-]\.?)+)*/? // Path (\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)? // Optional GET Query (#[a-z_.-][a-z0-9+$%_.-]*)? // Optional Anchor
PHP でこの式を使用するには、二重引用符で囲み、評価する URL とともに preg_match 関数に渡します。例:
<code class="php">$url = 'www.example.com/etcetc'; if (preg_match("~^$regex$~i", $url)) { echo 'Matched URL without protocol'; }</code>
同様に、プロトコルを含む URL の場合:
<code class="php">$url = 'http://www.example.com/etcetc'; if (preg_match("~^$regex$~i", $url)) { echo 'Matched URL with protocol'; }</code>
このパターンは、幅広い URL 形式をカバーすると同時に、「」などの文字を含む潜在的な悪意のある入力からも保護する必要があります。 /".
以上が正規表現を使用して URL を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。