PHP で正規表現を使用せずにドメイン名を検証できますか?

Mary-Kate Olsen
リリース: 2024-11-01 19:29:30
オリジナル
549 人が閲覧しました

Can Domain Names Be Validated in PHP Without Regular Expressions?

PHP でのドメイン名の検証

正規表現を使用せずに検証できますか?

潜在的なセキュリティのため、正規表現を使用しないドメイン名の検証は推奨されません脆弱性と一貫性のない結果。正規表現は、精度を確保するための堅牢で標準化されたアプローチを提供します。

ドメイン名検証の正規表現パターン

正規表現を使用してドメイン名を検証するには、次のパターンを考慮してください:

^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i
ログイン後にコピー

この式は複数の条件で構成されます:

  • 有効な文字: ドメイン名に英数字、ハイフン、ピリオドのみが含まれていることを確認します。
  • 全体の長さ: ドメイン名の長さは 253 文字を超えてはなりません。
  • 個々のラベルの長さ: 各ラベル (ピリオドで区切られた部分) は 63 文字を超えてはなりません。

カスタム検証関数

ドメイン名検証用の改良された 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)
            &amp;&amp; preg_match("/^.{1,253}$/", $domain_name)
            &amp;&amp; preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name));
}</code>
ログイン後にコピー

テスト ケース

Domain Name Validation Result
a Yes
0 Yes
a.b Yes
localhost Yes
google.com Yes
news.google.co.uk Yes
xn--fsqu00a.xn--0zwm56d Yes
goo gle.com No
google..com No
google.com No
google-.com No
.google.com No
No
alert( No
. No
.. No
No
- No
No

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

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