Подтвердить что ты не робот

Есть ли функция PHP для преобразования строки запроса в массив?

В основном я ищу противоположность http_build_query().

У меня есть строка в виде строки:

foo=bar&bar[var]=foo

И я хочу следующее (перейти в http_build_query):

array(
    'foo' => 'bar',
    'bar' => array(
         'var' => 'foo',
    )
)
4b9b3361

Ответ 1

Вы хотите parse_str(). Передайте ему массив как 2-й параметр, и он будет извлекать переменные из строки запроса, которую вы передаете в массив:

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str, $output);

echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

Обратите внимание, что это самая первая связанная функция, указанная на странице http_build_query.