Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексного)
массива.
Список параметров
query_data
Может быть массивом или объектом, содержащим свойства.
Если query_data массив, то он может быть
простой одномерной структурой, или массивом массивов (который, в свою очередь,
может содержать другие массивы).
Если query_data объект, тогда только общедоступные (public)
свойства будут включены в результат.
numeric_prefix
Если числовые индексы используются в базовом массиве и этот параметр указан,
то будет добавлен числовой индекс только для элементов в базом массиве.
Это позволяет обеспечить допустимые имена переменных, в которые позже данные декодируются PHP или другим CGI приложением.
arg_separator
arg_separator.output
Используется в качестве разделителя аргументов, если этот параметр указан.
enc_type
По умолчанию, PHP_QUERY_RFC1738.
Если enc_type равен PHP_QUERY_RFC1738,
тогда кодирование осуществляется по » RFC 1738
и типу контента application/x-www-form-urlencoded, который
подразумевает, что пробелы кодируются как символы "плюс"(+).
Если enc_type равен PHP_QUERY_RFC3986,
тогда кодирование осуществляется в соответствии с » RFC 3986,
и пробелы будут кодированы как %20.
Возвращаемые значения
Возвращает URL-кодированную строку.
Список изменений
Версия
Описание
5.4.0
Добавлен параметр enc_type.
5.1.3
Квадратные скобки экранируются.
5.1.2
Добавлен параметр arg_separator.
Примеры
Пример #1 Простой пример использования http_build_query()
Только числовой индексированный элемент "CEO" в базовом массиве получил префикс.
Другие числовые индексы, найденные в pastimes, не требуют строкового префикса чтобы
быть допустимым именем переменной.
Пример #4 Пример использования http_build_query() с объектом
<?php class parentClass { public $pub = 'publicParent'; protected $prot = 'protectedParent'; private $priv = 'privateParent'; public $pub_bar = Null; protected $prot_bar = Null; private $priv_bar = Null;
public function __construct(){ $this->pub_bar = new childClass(); $this->prot_bar = new childClass(); $this->priv_bar = new childClass(); } }
class childClass { public $pub = 'publicChild'; protected $prot = 'protectedChild'; private $priv = 'privateChild'; }