Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP dalam tindakan: memadankan URL

Ungkapan biasa PHP dalam tindakan: memadankan URL

WBOY
WBOYasal
2023-06-22 19:04:382196semak imbas

Amalan ungkapan biasa PHP: memadankan URL

Dengan populariti Internet, URL telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian. Dalam reka bentuk web, merangkak data, dsb., kita selalunya perlu menggunakan ungkapan biasa untuk memadankan URL. Dalam artikel ini, kami akan menumpukan pada cara ungkapan biasa dalam PHP boleh digunakan untuk memadankan URL.

Struktur asas URL

Mula-mula, mari kita fahami struktur asas URL. Secara umumnya, URL terdiri daripada bahagian berikut:

Nama protokol: http, https, dll.
Nama hos: nama domain atau alamat IP
Nombor port: 80, 8080, dsb. ( pilihan)
Laluan: menunjuk ke lokasi tertentu halaman (pilihan)
Rentetan pertanyaan: parameter yang diluluskan dalam permintaan GET (pilihan)
Fragmen: titik utama, menunjuk ke lokasi tertentu dalam halaman ( pilihan)

Beberapa contoh:

http://www.example.com:8080/index.html?id=1#top
https://192.168.1.1/ aboutUs. html
https://www.google.com/search?q=php+regular+expression
ftp://ftp.example.com/public/files/manual.pdf

Di atas Dalam contoh, protokol yang berbeza, nama hos, nombor port, laluan, rentetan pertanyaan dan serpihan terlibat.

Konsep ungkapan biasa

Ungkapan biasa ialah mekanisme padanan rentetan yang boleh digunakan untuk memadankan pelbagai jenis maklumat. Ungkapan biasa biasanya terdiri daripada beberapa aksara khas, aksara biasa, kurungan dan parameter lain, yang boleh digunakan untuk menentukan nombor, kedudukan dan jenis aksara. Dalam PHP, kita boleh menggunakan fungsi preg_match() untuk memadankan ungkapan biasa.

Bina ungkapan biasa yang ringkas

Selepas memahami konsep asas di atas, kita boleh membina ungkapan biasa yang ringkas untuk dipadankan dengan URL. Berikut ialah contoh khusus:

$pattern = '/^((http|https|ftp)://)?[a-z0-9-]+(.[a-z0-9- ] +)+([/?#:][^s]*)?$/';
$url = 'http://www.example.com/index.html?id=1';

preg_match($pattern, $url, $matches);
print_r($matches);

Dalam contoh di atas, kami mentakrifkan ungkapan biasa $pattern untuk memadankan URL, dan kemudian gunakan fungsi preg_match () untuk dipadankan. Akhirnya, hasil yang sepadan dicetak.

Kod analisis

Ungkapan biasa terdiri daripada dua bahagian, iaitu: struktur asas dan bahagian yang sepadan bagi setiap komponen seperti nama protokol, nama hos, laluan, dsb. Mari kita jelaskan satu persatu di bawah.

Struktur asas: '^((http|https|ftp)://)?'

  • '^' bermaksud memadankan permulaan baris
  • 'http|. https|ftp' bermaksud padanan http, https atau protokol ftp
  • '://' bermaksud memadankan dua aksara ://', ​​​​iaitu pemisah antara nama protokol dan nama hos
  • ' ?' ​​bermaksud kandungan sebelumnya adalah pilihan (kerana sesetengah URL mungkin tidak mempunyai nama protokol)

Nama protokol: '(http|https|ftp)://'

Nama hos: '[a-z0-9-]+(.[a-z0-9-]+)+'

  • '[a-z0-9- ]+' bermaksud memadankan nama domain Aksara atau nombor atau '-' dalam, padankan sekurang-kurangnya sekali
  • '(.[a-z0-9-]+)+' bermaksud padankan kandungan nama domain, padankan sekurang-kurangnya sekali

Laluan, rentetan pertanyaan dan serpihan: '([/?#:]1*)?'

  • '[ /?#:]' sepadan dengan pelbagai aksara khas di hadapan laluan, rentetan pertanyaan atau serpihan, seperti '/', '?', '#', ':'
  • ' 2' bermaksud mana-mana aksara kecuali ruang, '*' bermaksud memadankan kandungan sebelumnya beberapa kali (iaitu, pilihan)

Ringkasnya, ungkapan biasa di atas Formula boleh memadankan sebarang jenis URL. Satu perkara yang perlu diambil perhatian ialah dalam pembangunan sebenar, kita mungkin perlu mengubah suai atau mengembangkan peraturan ungkapan biasa mengikut keperluan khusus.

Ringkasan

Ungkapan biasa digunakan secara meluas dalam PHP dan boleh digunakan untuk memadankan dan mengesahkan aksara, nombor, e-mel, nombor telefon dan jenis maklumat lain. Artikel di atas memperkenalkan cara memadankan URL melalui ungkapan biasa, dan juga memperkenalkan secara ringkas konsep asas ungkapan biasa. Saya berharap pembaca akan mempunyai pemahaman yang lebih mendalam tentang aplikasi ungkapan biasa.


  1. s
  2. s

Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan URL. 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