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