parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

parse_str(string $string, array &$result): void

Функция разбирает аргумент string как строку запроса, которую передали в URL-адресе, и устанавливает переменные в текущей области видимости, или заносит переменные в массив, если указали параметр result.

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

string

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

result

При вызове с двумя аргументами функция вместо присваивания переменных в текущей области видимости сохраняет переменные как элементы массива в параметре result.

Внимание

Вызывать функцию без параметра result настоятельно НЕ РЕКОМЕНДУЮТ, такой вызов УСТАРЕЛ начиная с PHP 7.2. С PHP 8.0.0 параметр result стал обязательным.

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

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

Список изменений

Версия Описание
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']. Рекомендуется также прочитать раздел о переменных из внешних источников.

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

  • parse_url() - Разбирает URL-адрес и возвращает компоненты адреса
  • pathinfo() - Возвращает информацию о пути к файлу
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • urldecode() - Декодирование URL-кодированной строки