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!