Home  >  Article  >  Backend Development  >  Convert request string into array in php

Convert request string into array in php

WBOY
WBOYOriginal
2023-05-07 18:03:07503browse

Overview

Converting the request string to an array is a common operation in PHP, usually used to process data from forms or URLs. This operation can be achieved by using built-in functions or custom functions. This article will introduce how to use PHP built-in functions and custom functions to convert the request string into an array, and explore its usage.

PHP built-in functions

Using PHP built-in functions to convert the request string into an array is a simple and fast way. PHP provides two built-in functions to convert the request string into an array: parse_str() and explode(). Here is how they are used:

  1. parse_str()

The parse_str() function converts the request string into an array and stores the parameters in it as key-value pairs. For example, the following code converts the request string "name=David&age=28" to an array:

$queryString = "name=David&age=28";
parse_str($queryString, $array);
print_r($array);

Output:

Array
(
    [name] => David
    [age] => 28
)

Additionally, if your request string contains an array, you can use the following Code to convert it to a multidimensional array:

$queryString = "name[0]=David&name[1]=John&age=28";
parse_str($queryString, $array);
print_r($array);

Output:

Array
(
    [name] => Array
        (
            [0] => David
            [1] => John
        )

    [age] => 28
)
  1. explode()

Another method to convert the request string to an array is to use the explode() function. This function splits the request string into an array of strings, splitting at the specified delimiter. The following is a sample code:

$queryString = "name=David&age=28";
$array = explode("&", $queryString);
print_r($array);

Output:

Array
(
    [0] => name=David
    [1] => age=28
)

Since the separator is the "&" symbol, the request string is split into two elements. Next, you can use the explode() function again to split each element into smaller subarrays.

Custom function

If you want more flexibility in handling the request string, or you want to do some preprocessing on it before converting it to an array, then a custom function is a Not a bad choice. The following is a simple custom function to convert the request string to an array:

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;
}

This function uses similar logic to the explode() function to convert the request string to an array. But unlike the built-in function, it uses the urldecode() function to decode each key and value, ensuring that all special characters are converted to their original form. Sample code using this function is as follows:

$queryString = "name=David&age=28";
$array = parseQueryString($queryString);
print_r($array);

Output:

Array
(
    [name] => David
    [age] => 28
)

Conclusion

Whether you are processing form data or extracting parameters from the URL, convert the request string to Arrays are essential steps. PHP provides built-in functions to easily implement this function, while also allowing you to customize functions according to your needs. Which method you choose depends on your specific needs and your personal preferences.

The above is the detailed content of Convert request string into array in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn