Ungkapan biasa PHP dalam tindakan: memadankan parameter URL

WBOY
Lepaskan: 2023-06-23 13:12:02
asal
2275 orang telah melayarinya

Dengan perkembangan teknologi Internet dan pengembangan aplikasi yang berterusan, parameter URL telah menjadi jenis data biasa yang perlu diproses dalam pembangunan harian kita. Dalam persekitaran pembangunan sebenar, kita selalunya perlu memadankan beberapa maklumat khusus berdasarkan parameter URL, seperti mengekstrak nilai parameter tertentu, menentukan sama ada parameter itu mematuhi format, dsb.

Ungkapan biasa boleh membantu kami memadankan dan memproses parameter URL dengan cepat. Artikel ini akan memperkenalkan pengetahuan dan teknik berkaitan yang digunakan dalam padanan parameter URL dalam amalan ungkapan biasa PHP dan memberikan contoh kod untuk digambarkan.

1. Memadankan parameter URL

Dalam proses mengekstrak parameter URL, kita selalunya perlu memadankan berdasarkan nama parameter tertentu. Berikut ialah pautan URL biasa:

http://example.com/index.php?name=John&age=25&gender=male
Salin selepas log masuk

Kita boleh menggunakan ungkapan biasa untuk memadankan nilai parameter, seperti mengekstrak nilai parameter nama. Kod khusus adalah seperti berikut:

$url = 'http://example.com/index.php?name=John&age=25&gender=male';
preg_match('/name=(.*?)&/', $url, $matches);
echo $matches[1];
Salin selepas log masuk

Kod di atas menggunakan fungsi preg_match dan ungkapan biasa '/name=(.*?)&/' untuk memadankan parameter nama dalam URL dan menyimpan padanan menghasilkan $matches Output dalam tatasusunan.

2. Padankan mana-mana parameter

Selain memadankan parameter URL tertentu, kami juga perlu memadankan semua parameter URL, atau hanya memadankan sebahagian daripadanya. Dalam kes ini, anda perlu menggunakan format '?name=value' atau '&name=value' untuk memadankan parameter. Berikut ialah contoh:

$url = 'http://example.com/index.php?name=John&age=25&gender=male';
preg_match_all('/(?:[?&])(.+?)=([^&]+)/', $url, $matches, PREG_SET_ORDER);
$params = array();
foreach ($matches as $match) {
    $params[$match[1]] = $match[2];
}
print_r($params);
Salin selepas log masuk

Kod di atas menggunakan fungsi preg_match_all dan ungkapan biasa '/(?:[?&])(.+?)=(1 +)/' untuk memadankan semua parameter dalam URL dan menyimpan hasil yang sepadan dalam tatasusunan $params untuk output.

3. Tentukan sama ada format parameter URL adalah betul

Apabila memproses parameter URL, biasanya kita juga perlu menilai format parameter perlu integer. Atau jenis titik terapung, parameter rentetan perlu mematuhi format tertentu, dsb. Berikut ialah contoh untuk menentukan sama ada parameter umur ialah integer:

$url = 'http://example.com/index.php?name=John&age=25&gender=male';
preg_match('/age=([0-9]+)/', $url, $matches);
if (isset($matches[1]) && is_numeric($matches[1])) {
    echo "age is a number.";
} else {
    echo "age is not a number.";
}
Salin selepas log masuk

Kod di atas menggunakan fungsi preg_match dan ungkapan biasa '/age=([0-9]+)/' untuk memadankan umur dalam parameter URL dan gunakan fungsi is_numeric untuk menentukan sama ada ia adalah jenis angka.

4. Gunakan kelas aksara yang dipratentukan

Apabila memproses parameter URL, kita juga perlu menggunakan beberapa kelas aksara yang dipratentukan untuk memadankan nilai parameter tertentu, seperti huruf, Nombor, mata, dsb. Berikut ialah beberapa kelas aksara pratakrif biasa:

  • d : Padan dengan digit
  • D : Padan dengan aksara bukan angka
  • w : Padan dengan mana-mana aksara tunggal (termasuk huruf) , nombor dan garis bawah)
  • W: Padankan mana-mana aksara bukan tunggal
  • s: Padankan mana-mana aksara ruang putih
  • S: Padankan mana-mana aksara bukan ruang putih
  • . : Memadankan mana-mana aksara kecuali baris baharu

Berikut ialah contoh huruf dan nombor yang sepadan dalam nilai parameter nama:

$url = 'http://example.com/index.php?name=John123&age=25&gender=male';
preg_match('/name=([w]+)/', $url, $matches);
echo $matches[1];
Salin selepas log masuk

Kelas aksara yang dipratentukan digunakan dalam kod di atas ' /name=([w]+)/' untuk memadankan parameter nama dalam URL dan menyimpan hasil padanan dalam tatasusunan $matches untuk output.

5 Gunakannya dalam kombinasi dengan bahasa templat

Apabila menggunakan bahasa templat untuk membangunkan tapak web, kami selalunya perlu memaparkan kandungan yang sepadan berdasarkan parameter URL tertentu kes, Ungkapan biasa digunakan bersama dengan bahasa templat untuk mencapai pemadanan dan pemprosesan nilai parameter yang pantas. Berikut ialah contoh:

$url = 'http://example.com/index.php?page=2';
$page = 0;
if (preg_match("/page=([0-9]+)/", $url, $matches)) {
    $page = $matches[1];
}

// 根据$page值显示特定的内容
if ($page == 1) {
    echo "显示第一页内容";
} elseif ($page == 2) {
    echo "显示第二页内容";
} elseif ($page == 3) {
    echo "显示第三页内容";
} else {
    echo "参数错误";
}
Salin selepas log masuk

Kod di atas menggunakan fungsi preg_match dan ungkapan biasa "/page=([0-9]+)/" untuk memadankan parameter halaman dalam URL dan menyimpan padanan menghasilkan pembolehubah $page. Bergantung pada nilai pembolehubah $page, kandungan yang sepadan dipaparkan.

Ringkasan:

Dalam pembangunan, menggunakan ungkapan biasa untuk memadankan parameter URL ialah operasi yang sangat biasa Menguasai kemahiran dan kaedah yang berkaitan boleh membantu kami Memproses dan mengekstrak URL dengan cepat parameter dengan cekap untuk meningkatkan kecekapan pembangunan. Di atas ialah pengenalan yang berkaitan dan kod contoh pertempuran ungkapan biasa PHP: padanan parameter URL Saya harap ia akan membantu pembangunan anda.


  1. &

Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan parameter URL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan