PHP 正規表現を使用して入力文字列が正しい URL 形式であることを確認する方法

WBOY
リリース: 2023-06-24 12:10:02
オリジナル
1874 人が閲覧しました

今日のインターネット時代において、Web サイトは私たちの生活に欠かせないものになっています。どの Web サイトにとっても、その URL は最も基本的なコンポーネントです。ただし、URL にはさまざまな形式があり、http:// または https:// で始まるもの、www. で始まるもの、第 2 レベルのドメイン名で始まるものもあります。では、PHP 正規表現を使用して、入力文字列が正しい URL 形式であるかどうかを確認するにはどうすればよいでしょうか?私たちも調べてみるといいかもしれません。

1. 正規表現について理解する

正規表現は、特定の文字列を照合して抽出するのに役立つ強力なテキスト処理ツールです。 PHP では、preg_match() 関数を使用して正規表現を実現できます。文字列が特定の形式に準拠しているかどうかを確認したい場合は、正規表現を使用する必要があります。

2. URL 形式を検証する正規表現

PHP では、正規表現を使用して、文字列が URL 形式に準拠しているかどうかを検証できます。以下は、単純な URL 形式の正規表現です。

/^((https|http|ftp|rtsp|mms)?://)[^s]+/
ログイン後にコピー

この正規表現は、http、https、ftp、rtsp、mms などのプロトコルで始まる URL 形式に一致します。 URL が指定されたプロトコルでのみ開始できることを確認したい場合は、正規表現内の (https|http|ftp|rtsp|mms) を任意のプロトコルに変更できます。

3. 正規表現をさらに最適化する

上記の正規表現はほとんどの URL パターンに一致しますが、まだ多くの欠点があります。たとえば、第 2 レベルのドメイン名と一致することはできませんが、第 3 レベルのドメイン名以上とのみ一致します。したがって、最適化する必要があります。

以下は、より完全な URL 形式の正規表現です:

/^((https|http|ftp|rtsp|mms)?://)[^s]+.[^s]{2,}|(www.)[^s]+.[^s]{2,}$/i
ログイン後にコピー

この正規表現は、次の種類の URL に一致します:

  • http://www 。 example.com
  • https://www.example.com
  • ftp://www.example.com
  • rtsp://www.example.com
  • mms://www.example.com
  • www.example.com
  • xxx.example.com (第 2 レベルのドメイン名)
# # この正規表現では大文字と小文字が区別されないことに注意してください。つまり、/i は大文字と小文字を区別しないことを意味します。

4. preg_match() 関数を使用して URL 形式を検証する

正規表現を取得したので、次のステップは、PHP で preg_match() 関数を使用して、URL 形式が正しいかどうかを検証することです。文字列は URL と一致します。

$url = 'http://www.example.com';
$pattern = '/^((https|http|ftp|rtsp|mms)?://)[^s]+.[^s]{2,}|(www.)[^s]+.[^s]{2,}$/i';
if (preg_match($pattern, $url)) {
    echo '字符串符合网址格式';
} else {
    echo '字符串不符合网址格式';
}
ログイン後にコピー
上記のコードでは、$url は検証する文字列、$pattern は URL 形式の正規表現です。 $string が URL 形式に準拠している場合、出力文字列は URL 形式に準拠します。それ以外の場合、出力文字列は URL 形式に準拠しません。

5. 概要

正規表現は非常に強力なテキスト処理ツールであり、特定の文字列を迅速に照合して抽出するのに役立ちます。 PHP を使用して URL パターンを検証する場合、preg_match() 関数と URL パターンの正規表現を使用して完了できます。同時に、正規表現の精度を向上させるには、より複雑な URL パターンに一致できるように正規表現を継続的に最適化および改善する必要があります。

以上がPHP 正規表現を使用して入力文字列が正しい URL 形式であることを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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