関数の概要
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引数に配列を指定する方法を覚えておくと、グローバル変数への影響を防ぎ安全に処理を行えますのでおすすめです。
