Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Nama Domain dalam PHP Tanpa Ungkapan Biasa?

Bagaimana untuk Mengesahkan Nama Domain dalam PHP Tanpa Ungkapan Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 19:12:02938semak imbas

How to Validate Domain Names in PHP Without Regular Expressions?

Pengesahan Nama Domain PHP Tanpa Ungkapan Biasa

Ramai pembangun menghadapi keperluan untuk mengesahkan nama domain, memastikan mereka mematuhi peraturan pemformatan tertentu. Walaupun ungkapan biasa biasanya digunakan untuk tugasan ini, ungkapan itu boleh menjadi rumit dan berpotensi terdedah kepada ralat. Artikel ini meneroka penyelesaian untuk mengesahkan nama domain dalam PHP tanpa bergantung pada ungkapan biasa.

Dalam situasi tertentu, seperti semasa bekerja dengan sistem warisan atau apabila berurusan dengan pengehadan aksara yang ketat, nama domain mungkin perlu disahkan. tanpa menggunakan ungkapan biasa. Fungsi berikut mencapainya dengan melaksanakan satu siri semakan logik:

<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>

Fungsi ini memastikan bahawa nama domain bermula dan berakhir dengan aksara alfanumerik dan setiap label dalam nama domain mematuhi sekatan panjang yang ditentukan. Ia juga mengesahkan panjang keseluruhan nama domain.

Kes Ujian

Kes ujian berikut menunjukkan keberkesanan fungsi pengesahan ini:

<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>

Dengan mengikuti semakan logik ini, fungsi ini menyediakan cara yang boleh dipercayai untuk mengesahkan nama domain tanpa memerlukan ungkapan biasa. Pendekatan ini meningkatkan fleksibiliti dan mengurangkan potensi ralat semasa mengesahkan nama domain dalam PHP.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Nama Domain dalam PHP Tanpa Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn