Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Berbilang Parameter dengan Nama Yang Sama daripada URL dalam PHP?

Bagaimana untuk Mendapatkan Berbilang Parameter dengan Nama Yang Sama daripada URL dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 04:26:11216semak imbas

How to Retrieve Multiple Parameters with the Same Name from a URL in PHP?

Mengambil Berbilang Parameter dengan Nama Yang Sama daripada URL dalam PHP

Dalam aplikasi web, URL selalunya mengandungi berbilang parameter untuk menghantar maklumat kepada skrip PHP. Walau bagaimanapun, fungsi $_GET PHP biasanya hanya mengembalikan nilai terakhir untuk parameter tertentu. Ini boleh menjadi masalah apabila berbilang parameter dengan nama yang sama terdapat dalam URL.

Pertimbangkan contoh URL ini:

http://example.com/index.php?param1=value1&param2=value2&param1=value3

Dalam kes ini, $_GET['param1'] akan kembali "value3," menggantikan nilai sebelumnya ("value1").

Untuk mengendalikan isu ini, coretan kod berikut boleh digunakan:

$query = explode('&', $_SERVER['QUERY_STRING']);
$params = array();

foreach ($query as $param) {
    // To prevent errors, ensure each element has an equals sign.
    if (strpos($param, '=') === false) {
        $param .= '=';
    }

    list($name, $value) = explode('=', $param, 2);
    $params[urldecode($name)][] = urldecode($value);
}

Kod ini akan mencipta tatasusunan bersekutu di mana setiap kunci sepadan dengan nama parameter dan setiap nilai ialah tatasusunan yang mengandungi semua nilai yang dikaitkan dengan parameter tersebut. Untuk contoh URL di atas, tatasusunan $params yang terhasil ialah:

array(
    'param1' => array('value1', 'value3'),
    'param2' => array('value2')
)

Dengan menggunakan kaedah ini, anda boleh mengakses dengan mudah semua nilai yang dikaitkan dengan setiap parameter daripada URL, tidak kira sama ada parameter berlaku beberapa kali .

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Berbilang Parameter dengan Nama Yang Sama daripada URL dalam PHP?. 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