ホームページ  >  記事  >  バックエンド開発  >  PHP でドメイン名を検証する方法: 正規表現の有無?

PHP でドメイン名を検証する方法: 正規表現の有無?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 06:37:01901ブラウズ

How to Validate Domain Names in PHP: With or Without Regular Expressions?

PHP でドメイン名を検証する方法

ドメインを使用する場合、悪意のあるアクティビティや誤った入力を防ぐために、その有効性を確認することが重要になります。この記事では、正規表現を使用する場合と使用しない場合の両方で、PHP でドメイン名を検証する方法について説明します。

正規表現を使用しない検証

潜在的な制限があるため推奨されませんが、可能です。正規表現を使用せずに基本的なドメイン名の検証を実行します。これには、次の基準の確認が含まれます。

  • ドメイン名は英数字で始まる必要があります。
  • 追加の英数字またはハイフンを含めることができます。
  • 終了する必要があります

たとえば、次の文字列は有効なドメインとみなされます:

domain-name
abcd
example

一方、次の文字列は無効です:

domaia@name
ab$%cd

正規表現を使用した検証

正規表現は、ドメイン名を検証するためのより堅牢で信頼性の高い方法を提供します。この目的には、次の正規表現パターンを使用できます。

/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/

サンプル コード

次の PHP 関数は、提供された正規表現パターンを使用してドメイン名を検証します。

<code class="php">function is_valid_domain_name($domain_name)
{
    return (
        preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid chars check
        && preg_match("/^.{1,253}$/", $domain_name) //overall length check
        && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name) //length of each label
    );
}</code>

以上がPHP でドメイン名を検証する方法: 正規表現の有無?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。