When working with PHP, parse_str can help with a specific task: parses URL-encoded query-string data into an output array.
This guide shows what parse_str does, how to use it in code, and which details you should check before relying on the result.
What Is parse_str in PHP?
Parses URL-encoded query-string data into an output array.
Usage: The following examples show calls with suitable values. Consult the function parameters described in the examples, especially when optional arguments or extensions are involved.
Example 1: Basic Usage
The first example introduces parse_str with a direct PHP expression.
<?php
parse_str("name=Alex&city=Paris", $query); print_r($query);
Observe the value returned or printed by parse_str and compare it with the input used in this example.
Example 2: A Different Input or Option
This second example demonstrates another input or condition, so you can compare the behavior with the first example.
<?php
parse_str("tag[]=php&tag[]=sql", $query); print_r($query["tag"]);
Observe the value returned or printed by parse_str and compare it with the input used in this example.
Practical Example
Here is a small scenario illustrating how parse_str can fit into application code. Run the example only in an appropriate development environment if it reads files, changes data, starts processes or connects to a service.
<?php
$queryText = "page=3&sort=recent"; parse_str($queryText, $parameters); echo filter_var($parameters["page"] ?? null, FILTER_VALIDATE_INT) ?: "Invalid page";
Observe the value returned or printed by parse_str and compare it with the input used in this example.
Important Behavior and Edge Cases
- Core behavior: Parses URL-encoded query-string data into an output array.
- Important limitation: Duplicate keys can overwrite and PHP normalizes dots/spaces in parameter names; validate decoded values.
- Production use: Check return values and handle failures before acting on the result.
Comparison With Related Functions
| Function or Approach | Difference |
|---|---|
parse_str() | Parses URL-encoded query-string data into an output array. |
http_build_query() | Related approach. Its purpose and return value differ; select it when your task matches that operation. |
Common Beginner Mistakes
| Mistake | Correct Approach |
|---|---|
Overlooking a special case of parse_str(). | Duplicate keys can overwrite and PHP normalizes dots/spaces in parameter names; validate decoded values. |
Using parse_str() without checking the outcome. | Handle failures and confirm that the output is suitable for the next step. |
Key Takeaways
- Parses URL-encoded query-string data into an output array.
- Duplicate keys can overwrite and PHP normalizes dots/spaces in parameter names; validate decoded values.
- Test the function with relevant inputs before using it in production.
Use parse_str when its behavior matches the job you need to complete. For dependable results, consider the input data, returned value and limitations shown above.