parse_str

関数の概要

PHPの parse_str 関数は、URLのクエリ文字列やパラメータ形式の文字列を解析し、変数や配列に変換するための関数です。例えば、”name=John&age=20″ のような文字列を連想配列に変換し、各要素を簡単に扱えるようにします。WebアプリケーションでGETパラメータを処理する際に非常に便利です。

パラメータの説明

  • string $str — 解析するクエリ文字列を指定します。
  • array &$arr(省略可能) — 解析結果を格納する連想配列の変数を指定します。指定しない場合は直接変数として展開されます。

戻り値

parse_str 関数は戻り値を返しません。解析した結果は、第2引数で指定した配列に格納されるか、第2引数を省略した場合は変数として展開されます。

使用例

基本的な使い方

$str = "name=John&age=20";
parse_str($str);
echo $name; // John
echo $age;  // 20

この例では、第2引数を指定していないため、クエリ文字列内のパラメータがそのまま変数 $name$age に展開されます。

配列に結果を格納する場合

$str = "name=John&age=20";
parse_str($str, $output);
print_r($output);

出力は以下のようになります。配列 $output に解析結果が格納されるため、変数汚染のリスクを避けられます。

Array
(
    [name] => John
    日付未入力 => 20
)

配列形式のパラメータを扱う例

$str = "arr[]=apple&arr[]=banana&arr[]=cherry";
parse_str($str, $output);
print_r($output);

この場合、arr[] の形式で複数の値が指定されているため、結果は配列として扱われます。

Array
(
    [arr] => Array
        (
            [0] => apple
            [1] => banana
            [2] => cherry
        )
)

関連する関数

  • http_build_query — 配列をクエリ文字列に変換する
  • parse_url — URLを構成要素に分解する
  • urldecode — URLエンコードされた文字列をデコードする

まとめ

parse_str は、クエリ文字列やURLパラメータを効率的に変数や配列へ変換できるPHPの便利な関数です。特にWeb開発でフォームやURLのパラメータを解析する際に非常に役立ちます。第2引数に配列を指定する方法を覚えておくと、グローバル変数への影響を防ぎ安全に処理を行えますのでおすすめです。