プロトコルとドメインプレフィックスの有無にかかわらず URL を照合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-22 08:47:02
オリジナル
375 人が閲覧しました

How to Match URLs with or Without Protocol and Domain Prefixes?

プロトコルとドメイン プレフィックスの有無にかかわらず URL を照合する

URL を操作する場合、多くの場合、URL にHTTP/HTTPS プロトコルまたは「www」ドメイン プレフィックス。これを実現するための正規表現の詳細な内訳は次のとおりです。

<code class="php">$regex = "(https?|ftp)://)?"; // SCHEME (Optional)
$regex .= "([a-z0-9+!*(),;?&amp;=$_.-]+(:[a-z0-9+!*(),;?&amp;=$_.-]+)?@)?"; // User and Pass (Optional)
$regex .= "([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))"; // Host or IP address
$regex .= "((:[0-9]{2,5})?)?"; // Port (Optional)
$regex .= "(/([a-z0-9+$_%-]\.?)+)*/?"; // Path (Optional)
$regex .= "(?=[a-z+&amp;$_.-][a-z0-9;:@&amp;%=+/$_.-]*)?"; // GET Query (Optional)
$regex .= "(#[a-z_.-][a-z0-9+$%_.-]*)?"; // Anchor (Optional)</code>
ログイン後にコピー

説明:

  • SCHEME (オプション): 一致URL の先頭に「https」または「http」を付けます。
  • ユーザーとパス (オプション): コロンで区切られたユーザー名またはパスワードと一致します。
  • ホストまたは IP アドレス: ハイフンでつながれた文字列の後にドットとトップレベルのドメインまたは IP アドレスの形式を使用して、ドメイン名または IP アドレスを取得します。
  • ポート (オプション): ドメインの後のポート番号と一致します。
  • パス (オプション): URL のパスを取得します。これには、スラッシュで区切られたディレクトリとファイル名を含めることができます。
  • GET クエリ (オプション): 疑問符の後のクエリ パラメーターと一致します。
  • アンカー (オプション): ハッシュの後のフラグメント識別子をキャプチャします。

この正規表現と照合するには、次の構文を使用します。

<code class="php">preg_match("~^$regex$~i", $url, $m);</code>
ログイン後にコピー

これにより、URL 全体がパターンに一致し、オプションの部分が含まれることが保証されます。この正規表現を使用すると、さまざまな形式の URL を確実に照合できます。

以上がプロトコルとドメインプレフィックスの有無にかかわらず URL を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!