正規表現による 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 関数に渡します。例:
$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
echo 'Matched URL without protocol';
}
同様に、プロトコルを含む URL の場合:
$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
echo 'Matched URL with protocol';
}
このパターンは、幅広い URL 形式をカバーしながら、「/」などの文字を含む潜在的な悪意のある入力からも保護します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3