Обработка строк
PHP Manual

parse_str

(PHP 4, PHP 5, PHP 7)

parse_strРазбирает строку в переменные

Описание

void parse_str ( string $encoded_string [, array &$result ] )

Разбирает строку encoded_string, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте (или заносит в массив, если задан параметр result)

Список параметров

encoded_string

Входная строка.

result

Если указан второй параметр result, то вместо присвоения переменных в текущем контексте они будут сохранены в этом параметре в качестве элементов массива.

Внимание

Использовать эту функцию без второго параметра НЕ РЕКОМЕНДУЕТСЯ. Динамическое задание переменных в скопе функции ведет ровно к тем же проблемам, что и register_globals.

Читайте секцию про безопасность раздела Использование Register Globals, в которой описывается опасность их использования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Использование parse_str()

<?php
// Recommended
parse_str($str$output);
echo 
$output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

$str "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo 
$first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Так как имена переменных PHP не могут содержать пробелы и точки, эти символы будут заменены на символ подчеркивания. Такие же правила накладываются на имена ключей в массиве result, если он задан.

Пример #2 Соотношение имен parse_str()

<?php
parse_str
($"My Value=Something");
echo 
$My_Value// Something

parse_str($"My Value=Something"$output);
echo 
$output['My_Value']; // Something
?>

Примечания

Замечание:

Все переменные создаются (или заносятся в массив) уже обработанные функцией urldecode().

Замечание:

Для получения текущей QUERY_STRING, можно использовать переменную $_SERVER['QUERY_STRING']. Кроме того, возможно вы захотите прочесть раздел о переменных вне PHP.

Замечание:

Опция magic_quotes_gpc влияет на вывод этой функции, так как parse_str() использует тот же механизм, что используется в PHP для заполнения $_GET, $_POST и других переменных.

Смотрите также


Обработка строк
PHP Manual