PHP言語では、 parse_str()は、クエリ文字列を変数に解析するための組み込み関数です。通常、URLのクエリパラメーターを処理したり、フォーム提出データ構造をシミュレートするために使用されます。この関数は、単純なキーと値のペアを解析するだけでなく、アレイ形式でパラメーターを自動的に処理することもできます。これは、WebアプリケーションのGETリクエストの処理または投稿に非常に適しています。
bool parse_str(string $str [, array &$arr])
この関数は、クエリ文字列$ strを受け入れます。オプションでは、解析された結果を保存するために使用される変数と$ arrを受け入れます。 2番目のパラメーターが提供されると、すべての変数が現在のスコープに直接注入されることなく、この配列に保存されます。
次の例は、基本的なURLパラメーター文字列を解析する方法を示しています。
$query = "name=John&age=25&country=USA";
parse_str($query, $params);
echo $params['name']; // 出力 "John"
echo $params['age']; // 出力 "25"
echo $params['country']; // 出力 "USA"
この例では、 $クエリは標準形式のURLパラメーター文字列です。 Parse_str()は、それを連想配列に自動的に分解して、後続のデータ操作を容易にします。
パラメーター文字列に配列のような構造(年齢[] = 25&age [] = 26など)が含まれている場合、Parse_str()は自動的にPHPアレイに解析されます。
$query = "name=John&age[]=25&age[]=26&country=USA";
parse_str($query, $params);
echo $params['name']; // 出力 "John"
print_r($params['age']); // 出力 Array ( [0] => 25 [1] => 26 )
echo $params['country']; // 出力 "USA"
これにより、同じ名前の複数のフィールド(チェックボックス、マルチオプションフォームなど)を処理するのが非常に便利です。
parse_str()は主にURLクエリ文字列を解析するために使用されますが、同様の形式のCookie文字列にも適用できますが、前提は、文字列が次の代わりに分離されていることです。
$cookie = "name=John&age=25&country=USA";
parse_str($cookie, $params);
echo $params['name']; // 出力 "John"
echo $params['age']; // 出力 "25"
echo $params['country']; // 出力 "USA"
parse_str()は、PHPの効率的で実用的な文字列解析機能であり、URLパラメーター、フォームデータ、Cookie文字列などに適しています。その動作と使用状況を理解することで、開発者がHTTPデータ入力をより柔軟に管理し、コードのセキュリティと安定性を改善するのに役立ちます。