ホームページ >バックエンド開発 >PHPチュートリアル >PHPでURLから同じ名前の複数のパラメータを取得するにはどうすればよいですか?

PHPでURLから同じ名前の複数のパラメータを取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 04:26:11175ブラウズ

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

PHP で URL から同じ名前の複数のパラメータを取得する

Web アプリケーションでは、URL に PHP スクリプトに情報を渡すための複数のパラメータが含まれることがよくあります。ただし、PHP の $_GET 関数は通常、指定されたパラメーターの最後の値のみを返します。同じ名前の複数のパラメータが URL に存在する場合、これは問題となる可能性があります。

次の URL の例を考えてみましょう:

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

この場合、$_GET['param1'] は返されます。 「value3」。以前の値 (「value1」) を上書きします。

この問題を処理するには、次のコード スニペットを使用できます。 used:

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

このコードは、各キーがパラメーター名に対応する連想配列を作成します。各値は、そのパラメーターに関連付けられたすべての値を含む配列です。上記の URL の例の場合、結果の $params 配列は次のようになります。

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

このメソッドを使用すると、パラメーターが複数回出現するかどうかに関係なく、URL から各パラメーターに関連付けられたすべての値に簡単にアクセスできます。 .

以上がPHPでURLから同じ名前の複数のパラメータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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