ホームページ >バックエンド開発 >PHPチュートリアル >PHPで重複するURLパラメータのすべての値を取得する方法は?

PHPで重複するURLパラメータのすべての値を取得する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-30 07:43:11611ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。