概要
リクエスト文字列の配列への変換は、PHP の一般的な操作であり、通常はフォームまたは URL からのデータを処理するために使用されます。この操作は、組み込み関数またはカスタム関数を使用して実現できます。この記事では、PHP 組み込み関数とカスタム関数を使用してリクエスト文字列を配列に変換する方法を紹介し、その使用法を探ります。
PHP 組み込み関数
PHP 組み込み関数を使用してリクエスト文字列を配列に変換するのは、簡単かつ迅速な方法です。 PHP には、リクエスト文字列を配列に変換するための 2 つの組み込み関数、parse_str() とexplode() が用意されています。使用方法は次のとおりです。
parse_str() 関数は、リクエスト文字列を配列に変換し、その中にパラメータをキーと値として保存します。ペア。たとえば、次のコードはリクエスト文字列「name=David&age=28」を配列に変換します。
$queryString = "name=David&age=28"; parse_str($queryString, $array); print_r($array);
出力:
Array ( [name] => David [age] => 28 )
さらに、リクエスト文字列に配列が含まれている場合は、次のように使用できます。次のコードを使用して多次元配列に変換します。
$queryString = "name[0]=David&name[1]=John&age=28"; parse_str($queryString, $array); print_r($array);
出力:
Array ( [name] => Array ( [0] => David [1] => John ) [age] => 28 )
リクエスト文字列を次のように変換する別のメソッド配列はexplode()関数を使用します。この関数は、リクエスト文字列を文字列の配列に分割し、指定された区切り文字で分割します。以下にサンプルコードを示します。
$queryString = "name=David&age=28"; $array = explode("&", $queryString); print_r($array);
出力:
Array ( [0] => name=David [1] => age=28 )
区切り文字が「&」記号であるため、リクエスト文字列は 2 つの要素に分割されます。次に、explode() 関数を再度使用して、各要素を小さなサブ配列に分割します。
カスタム関数
リクエスト文字列の処理をより柔軟にしたい場合、または配列に変換する前に前処理を行いたい場合、カスタム関数は悪くありません。選択。以下は、リクエスト文字列を配列に変換する単純なカスタム関数です。
function parseQueryString($queryString) { $array = array(); $pairs = explode("&", $queryString); foreach ($pairs as $pair) { $split = explode("=", $pair); $key = urldecode($split[0]); $value = urldecode($split[1]); $array[$key] = $value; } return $array; }
この関数は、explode() 関数と同様のロジックを使用して、リクエスト文字列を配列に変換します。ただし、組み込み関数とは異なり、urldecode() 関数を使用して各キーと値をデコードし、すべての特殊文字が元の形式に変換されるようにします。この関数を使用したサンプル コードは次のとおりです。
$queryString = "name=David&age=28"; $array = parseQueryString($queryString); print_r($array);
出力:
Array ( [name] => David [age] => 28 )
結論
フォーム データを処理する場合でも、URL からパラメーターを抽出する場合でも、リクエスト文字列を次のように変換します。配列は重要なステップです。 PHP には、この機能を簡単に実装するための組み込み関数が用意されているほか、ニーズに応じて関数をカスタマイズすることもできます。どの方法を選択するかは、特定のニーズと個人的な好みによって異なります。
以上がPHPでリクエスト文字列を配列に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。