(PHP 4, PHP 5, PHP 7)
parse_str — Разбирает строку в переменные
Описание
$encoded_string
[, array &$result
] )Разбирает строку encoded_string
, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте (или заносит в массив, если задан параметр result
)
Список параметров
encoded_string
-
Входная строка.
result
-
Если указан второй параметр
result
, то вместо присвоения переменных в текущем контексте они будут сохранены в этом параметре в качестве элементов массива.ВниманиеИспользовать эту функцию без параметра
result
крайне НЕ РЕКОМЕНДУЕТСЯ. Подобное использование объявлено УСТАРЕВШИМ с PHP 7.2.Динамическое задание переменных в скопе функции ведет ровно к тем же проблемам, что и register_globals.
Читайте секцию про безопасность раздела Использование Register Globals, в которой описывается опасность их использования.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Список изменений
Версия | Описание |
---|---|
7.2.0 | Использование parse_str() без второго параметра будет вызывать ошибку уровня E_DEPRECATED . |
Примеры
Пример #1 Использование parse_str()
<?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 // НЕ РЕКОМЕНДУЕТСЯ 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 и других переменных.