首頁 > 後端開發 > php教程 > 如何在 PHP 中驗證網域:使用或不使用正規表示式?

如何在 PHP 中驗證網域:使用或不使用正規表示式?

Barbara Streisand
發布: 2024-10-31 06:37:01
原創
996 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板