Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Nama Domain Disahkan dalam PHP Tanpa Ungkapan Biasa?
Mengesahkan nama domain tanpa ungkapan biasa tidak disyorkan kerana potensi keselamatan kelemahan dan keputusan yang tidak konsisten. Ungkapan biasa memberikan pendekatan yang mantap dan piawai untuk memastikan ketepatan.
Untuk mengesahkan nama domain menggunakan ungkapan biasa, pertimbangkan corak berikut:
^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i
Ungkapan ini mengandungi berbilang kriteria:
Fungsi PHP yang dipertingkatkan untuk pengesahan nama domain:
<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) && preg_match("/^.{1,253}$/", $domain_name) && 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 |