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
Barbara Streisandasal
2024-10-22 08:47:02463semak imbas

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>

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>

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!

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