Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP untuk mengesahkan sama ada rentetan input ialah alamat IPv6 atau format nama domain yang betul

Ungkapan biasa PHP untuk mengesahkan sama ada rentetan input ialah alamat IPv6 atau format nama domain yang betul

PHPz
PHPzasal
2023-06-24 09:16:391792semak imbas

Apabila menulis tapak web atau aplikasi klien, selalunya perlu untuk mengesahkan bahawa data input pengguna berada dalam format yang betul. Satu pengesahan biasa adalah untuk mengesahkan sama ada alamat IP atau format nama domain yang dimasukkan oleh pengguna memenuhi standard.

IPv6 ialah protokol IP generasi seterusnya, yang menyokong format alamat yang lebih berwarna dan menggunakan lebih banyak bit untuk mewakili alamat IP. Alamat IPv6 mempunyai lapan kumpulan nombor perenambelasan 4 digit yang dipisahkan oleh titik bertindih, contohnya: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Setiap set nilai dalam alamat IPv6 boleh disingkatkan kepada nombor perenambelasan dengan sekurang-kurangnya satu digit atau bertindih dua (::) untuk mewakili nilai sifar.

Nama domain digunakan sebagai kaedah resolusi alamat dalam rangkaian, yang menggantikan alamat IP dengan nama yang boleh dibaca manusia. Contohnya, www.google.com ialah nama domain dan alamat IP yang sepadan ialah 216.58.194.174.

Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mengesahkan sama ada rentetan input berada dalam alamat IPv6 atau format nama domain yang betul. Berikut ialah ungkapan biasa dalam PHP:

Alamat IPv6:

/^([da-fA-F]{1,4}:){7}[da-fA-F]{1,4}$/i

Nama domain:

/^([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}$/i

Ungkapan biasa di atas boleh digunakan untuk memadankan aksara yang diberikan menggunakan preg_match( ) rentetan fungsi.

Kod berikut menunjukkan cara menggunakan ungkapan biasa di atas untuk mengesahkan alamat IPv6 dan nama domain:

function is_valid_ipv6($ip) {
  return preg_match('/^([da-fA-F]{1,4}:){7}[da-fA-F]{1,4}$/i', $ip);
}

function is_valid_domain($domain) {
  return preg_match('/^([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}$/i', $domain);
}

$ipv6 = '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
$domain = 'www.google.com';

if (is_valid_ipv6($ipv6)) {
  echo $ipv6 . '是一个有效的IPv6地址';
} else {
  echo $ipv6 . '不是一个有效的IPv6地址';
}

if (is_valid_domain($domain)) {
  echo $domain . '是一个有效的域名';
} else {
  echo $domain . '不是一个有效的域名';
}

Dalam contoh di atas, kami mula-mula mentakrifkan fungsi is_valid_ipv6() dan is_valid_domain() untuk Sahkan format alamat IPv6 dan nama domain. Kemudian, kami menentukan dua rentetan $ipv6 dan $domain, iaitu alamat IPv6 dan nama domain masing-masing. Akhir sekali, gunakan pernyataan if untuk menentukan sama ada dua rentetan mematuhi peraturan pengesahan.

Ringkasan:

Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mengesahkan sama ada alamat IPv6 atau nama domain yang dimasukkan oleh pengguna berada dalam format yang betul. Fungsi ini boleh dilaksanakan dengan mudah dalam kod menggunakan fungsi preg_match(). Menulis ungkapan biasa memerlukan sedikit pengalaman, tetapi anda boleh memudahkan proses dengan penjana ungkapan biasa dalam talian.

Atas ialah kandungan terperinci Ungkapan biasa PHP untuk mengesahkan sama ada rentetan input ialah alamat IPv6 atau format nama domain yang betul. 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