Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Nama Domain Disahkan dalam PHP Tanpa Ungkapan Biasa?

Bolehkah Nama Domain Disahkan dalam PHP Tanpa Ungkapan Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 19:29:30623semak imbas

Can Domain Names Be Validated in PHP Without Regular Expressions?

Mengesahkan Nama Domain dalam PHP

Bolehkah Pengesahan Dilakukan 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.

Corak Regex untuk Pengesahan Nama Domain

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:

  • Sah Aksara: Memastikan nama domain mengandungi aksara abjad angka, sempang dan noktah sahaja.
  • Panjang Keseluruhan: Panjang nama domain tidak boleh melebihi 253 aksara.
  • Panjang Label Individu: Setiap label (bahagian yang dipisahkan oleh noktah) tidak boleh melebihi 63 aksara.

Fungsi Pengesahan Tersuai

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)
            &amp;&amp; preg_match("/^.{1,253}$/", $domain_name)
            &amp;&amp; preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name));
}</code>

Kes Ujian

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

Atas ialah kandungan terperinci Bolehkah Nama Domain Disahkan 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