Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Semua Nilai untuk Parameter URL Pendua dalam PHP?

Bagaimana untuk Mendapatkan Semua Nilai untuk Parameter URL Pendua dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-30 07:43:11535semak imbas

How to Retrieve All Values for Duplicate URL Parameters in PHP?

Mendapatkan Berbilang Parameter dengan Nama Yang Sama daripada URL dalam PHP

Masalah:

Apabila URL mengandungi berbilang parameter dengan nama yang sama, pembolehubah PHP $_GET hanya mengembalikan nilai terakhir. Ini boleh menjadi masalah, terutamanya apabila aplikasi memerlukan akses kepada semua nilai untuk kunci yang diberikan.

Penyelesaian:

Untuk mendapatkan semula semua nilai bagi kunci yang diberikan, perkara berikut kod boleh digunakan:

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

foreach( $query as $param )
{
  // prevent notice on explode() if $param has no '='
  if (strpos($param, '=') === false) $param += '=';

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

Kod ini:

  • Meletup rentetan pertanyaan ke dalam pasangan nilai kunci individu.
  • Menyahkod nama kunci dan nilai.
  • Memulakan tatasusunan bersekutu $params untuk menyimpan nilai.
  • Menambah atau menambahkan nilai pada kunci yang sepadan dalam $params tatasusunan.

Keputusan:

Melaksanakan kod ini pada parameter URL yang disediakan menghasilkan tatasusunan berikut:

array(
  'ctx_ver'     => array('Z39.88-2004'),
  'rft_id'      => array('info:oclcnum/1903126', 'http://www.biodiversitylibrary.org/bibliography/4323'),
  'rft_val_fmt' => array('info:ofi/fmt:kev:mtx:book'),
  'rft.genre'   => array('book'),
  'rft.btitle'  => array('At last: a Christmas in the West Indies.'),
  'rft.place'   => array('London'),
  'rft.pub'     => array('Macmillan and co.'),
  'rft.aufirst' => array('Charles'),
  'rft.aulast'  => array('Kingsley'),
  'rft.au'      => array('Kingsley, Charles'),
  'rft.pages'   => array('1-352'),
  'rft.tpages'  => array('352'),
  'rft.date'    => array('1871')
)

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Nilai untuk Parameter URL Pendua 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