#php #arrays #string #foreach
#php
Вопрос:
Я в основном ищу противоположное http_build_query()
.
У меня есть следующее в виде строки:
foo=baramp;bar[var]=foo
И я хочу, чтобы следующее (чтобы перейти в http_build_query
):
array(
'foo' => 'bar',
'bar' => array(
'var' => 'foo',
)
)
Ответ №1:
Вы хотите parse_str()
. Передайте ему массив в качестве 2-го параметра, и он извлечет переменные из строки запроса, которую вы ему передаете, в массив:
<?php
$str = "first=valueamp;arr[]=foo baramp;arr[]=baz";
parse_str($str, $output);
print_r($output);
/*
Array
(
[first] => value
[arr] => Array
(
[0] => foo bar
[1] => baz
)
)
*/
Обратите внимание, что это самая первая связанная функция, указанная на http_build_query
странице.
Комментарии:
1. Краткое примечание: предоставление второго параметра (в этом примере
$output
) является обязательным, начиная с PHP 7.2.
Ответ №2:
Может быть, это сработает. parse_str
2-й параметр, обязательный для PHP 7.2
parse_str(urldecode($builded_content), $output)
print_r($output)