正規表現を使用せずに PHP でドメイン名を検証する方法

Mary-Kate Olsen
リリース: 2024-10-30 19:12:02
オリジナル
937 人が閲覧しました

How to Validate Domain Names in PHP Without Regular Expressions?

正規表現を使用しない PHP ドメイン名の検証

多くの開発者は、ドメイン名が特定のフォーマット ルールに準拠していることを確認する必要に直面しています。このタスクには正規表現が一般的に使用されますが、正規表現は複雑であり、エラーが発生しやすい可能性があります。この記事では、正規表現に依存せずに PHP でドメイン名を検証するためのソリューションについて説明します。

レガシー システムを使用する場合や厳格な文字制限に対処する場合など、特定の状況では、ドメイン名を検証する必要がある場合があります。正規表現に頼らずに。次の関数は、一連の論理チェックを実装することでこれを実現します。

<code class="php">function is_valid_domain_name($domain_name)
{
    // Validate alphanumeric characters
    if (!preg_match("/^[a-zA-Z0-9]+$/", $domain_name)) {
        return false;
    }

    // Validate length of each label
    $labels = explode(".", $domain_name);
    foreach ($labels as $label) {
        if (strlen($label) < 1 || strlen($label) > 63) {
            return false;
        }
    }

    // Validate overall length
    if (strlen($domain_name) > 253) {
        return false;
    }

    return true;
}</code>
ログイン後にコピー

この関数は、ドメイン名が英数字で始まり英数字で終わること、およびドメイン名内の各ラベルが指定された長さの制限に従っていることを保証します。また、ドメイン名全体の長さも検証します。

テスト ケース

次のテスト ケースは、この検証機能の有効性を示しています:

<code class="php">is_valid_domain_name? [a]                       Y
is_valid_domain_name? [0]                       Y
is_valid_domain_name? [a.b]                     Y
is_valid_domain_name? [localhost]               Y
is_valid_domain_name? [google.com]              Y
is_valid_domain_name? [news.google.co.uk]       Y
is_valid_domain_name? [xn--fsqu00a.xn--0zwm56d] Y
is_valid_domain_name? [goo gle.com]             N
is_valid_domain_name? [google..com]             N
is_valid_domain_name? [google.com ]             N
is_valid_domain_name? [google-.com]             N
is_valid_domain_name? [.google.com]             N
is_valid_domain_name? [<script]                 N
is_valid_domain_name? [alert(]                  N
is_valid_domain_name? [.]                       N
is_valid_domain_name? [..]                      N
is_valid_domain_name? [ ]                       N
is_valid_domain_name? [-]                       N
is_valid_domain_name? []                        N</code>
ログイン後にコピー

これらの論理チェックに従うことにより、この関数は正規表現を必要とせずにドメイン名を検証する信頼性の高い方法を提供します。このアプローチにより、柔軟性が向上し、PHP でドメイン名を検証する際のエラーの可能性が減ります。

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

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