Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Tidak Boleh Mengesahkan Domain dalam PHP Tanpa Ungkapan Biasa?

Mengapa Saya Tidak Boleh Mengesahkan Domain dalam PHP Tanpa Ungkapan Biasa?

Mary-Kate Olsen
Lepaskan: 2024-10-31 05:01:02
asal
332 orang telah melayarinya

Why Can't I Validate Domains in PHP Without Regular Expressions?

Pengesahan nama domain PHP

Soalan: Bagaimanakah untuk mengesahkan nama domain dalam PHP tanpa menggunakan ungkapan biasa?

Keperluan pengesahan:

  • Bermula dengan huruf atau nombor
  • Boleh mengandungi huruf, nombor dan sempang
  • Bermula dengan Berakhir dengan huruf atau nombor
  • Panjang antara 1 dan 253 aksara
  • Setiap panjang label antara 1 dan 63 aksara

Jawapan yang mungkin:

Pengesahan nama domain tanpa menggunakan ungkapan biasa tidak boleh dilakukan kerana berbilang peraturan dan sekatan perlu disemak.

Corak ungkapan biasa:

/^[a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i
Salin selepas log masuk

Maksud:

  • ^ dan $ anchor rentetan permulaan dan penghujung.
  • [a-zd] sepadan dengan huruf atau nombor.
  • (-*[a-zd])* sepadan dengan sifar atau lebih huruf atau nombor yang dipisahkan oleh tanda sempang.
  • Padan dengan tempoh.
  • {} menentukan bilangan ulangan.

Kod sampel:

<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
            &amp;&amp; preg_match("/^.{1,253}$/", $domain_name) //overall length check
            &amp;&amp; preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)   ); //length of each label
}</code>
Salin selepas log masuk

Kes ujian:

域名 有效性
a Y
0 Y
a.b Y
localhost Y
google.com Y
news.google.co.uk Y
xn--fsqu00a.xn--0zwm56d Y
goo gle.com N
google..com N
google.com N
google-.com N
.google.com N
N
alert( N
. N
.. N
N
- N
[] N

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengesahkan Domain dalam PHP Tanpa Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan