Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memadankan URL dengan atau Tanpa Protokol dan Awalan Domain?

Bagaimana untuk Memadankan URL dengan atau Tanpa Protokol dan Awalan Domain?

Barbara Streisand
Lepaskan: 2024-10-22 08:47:02
asal
474 orang telah melayarinya

How to Match URLs with or Without Protocol and Domain Prefixes?

Memadankan URL dengan atau Tanpa Protokol dan Awalan Domain

Apabila bekerja dengan URL, selalunya perlu memadankannya tanpa mengira sama ada ia termasuk Protokol HTTP/HTTPS atau awalan domain "www". Berikut ialah pecahan terperinci ungkapan biasa untuk mencapai ini:

<code class="php">$regex = "(https?|ftp)://)?"; // SCHEME (Optional)
$regex .= "([a-z0-9+!*(),;?&amp;=$_.-]+(:[a-z0-9+!*(),;?&amp;=$_.-]+)?@)?"; // User and Pass (Optional)
$regex .= "([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))"; // Host or IP address
$regex .= "((:[0-9]{2,5})?)?"; // Port (Optional)
$regex .= "(/([a-z0-9+$_%-]\.?)+)*/?"; // Path (Optional)
$regex .= "(?=[a-z+&amp;$_.-][a-z0-9;:@&amp;%=+/$_.-]*)?"; // GET Query (Optional)
$regex .= "(#[a-z_.-][a-z0-9+$%_.-]*)?"; // Anchor (Optional)</code>
Salin selepas log masuk

Penjelasan:

  • SKIM (Pilihan): Padanan "https" atau "http" pada permulaan URL.
  • Pengguna dan Pas (Pilihan): Padan dengan nama pengguna atau kata laluan yang dipisahkan dengan titik bertindih.
  • Alamat hos atau IP: Menangkap nama domain atau alamat IP menggunakan rentetan sempang diikuti dengan titik dan domain peringkat atas atau format alamat IP.
  • Port (Pilihan): Memadankan nombor port selepas domain.
  • Laluan (Pilihan): Menangkap laluan URL, yang boleh termasuk direktori dan nama fail yang dipisahkan dengan garis miring.
  • DAPATKAN Pertanyaan (Pilihan): Memadankan sebarang parameter pertanyaan selepas tanda soal.
  • Sauh (Pilihan): Menangkap pengecam serpihan selepas cincang.

Untuk menyemak terhadap ungkapan biasa ini, gunakan sintaks berikut:

<code class="php">preg_match("~^$regex$~i", $url, $m);</code>
Salin selepas log masuk

Ini memastikan bahawa keseluruhan URL sepadan dengan corak dan termasuk mana-mana bahagian pilihan. Dengan menggunakan ungkapan biasa ini, anda boleh memadankan URL dalam pelbagai format dengan pasti.

Atas ialah kandungan terperinci Bagaimana untuk Memadankan URL dengan atau Tanpa Protokol dan Awalan Domain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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