首頁 >後端開發 >php教程 >如何在 PHP 中檢索重複 URL 參數的所有值?

如何在 PHP 中檢索重複 URL 參數的所有值?

Barbara Streisand
Barbara Streisand原創
2024-11-30 07:43:11550瀏覽

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

從PHP 中的URL 檢索多個同名參數

問題:

當URL 包含多個參數時同樣的名稱,PHP $_GET 變數只傳回最後一個值。這可能會出現問題,尤其是當應用程式需要存取給定鍵的所有值時。

解決方案:

要擷取給定鍵的所有值,請執行下列操作可以使用程式碼:

$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);
}

此程式碼:

  • 爆炸查詢字串轉換為單獨的鍵值對。
  • 解碼鍵和值名稱。
  • 初始化關聯陣列 $params 來儲存值。
  • 將值加到或附加到對應的值輸入$params array.

結果:

對提供的URL 參數執行此程式碼會產生以下數組:

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')
)

以上是如何在 PHP 中檢索重複 URL 參數的所有值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn