get_meta_tags
parse_url
URL Functions
PHP Manual

# http_build_query

(PHP 5)

http_build_query — Generar una cadena de consulta codificada estilo URL

### Descripción

string http_build_query ( array `$datos_formulario` [, string `$prefijo_numerico` [, string `$separador_arg` ]] )

Genera una cadena de consulta codificada estilo URL a partir de la matriz asociativa (o indexada) dada.

### Lista de parámetros

`datos_formulario`

  Puede ser una matriz u objeto que contenga propiedades.

  El formulario puede ser una estructura uni-dimensional sencilla, o una matriz de matrices (que a su vez puede contener otras matrices).

`prefijo_numerico`

  Si se usan índices numéricos en la matriz base y se provee este parámetro, éste será añadido al comienzo de los índices numéricos para aquellos elementos encontrados sólo en la matriz base.

  Esto es para permitir que se opere con nombres de variables legales cuando los datos sean decodificados por PHP u otra aplicación CGI más adelante.

`separador_arg`

  arg_separator.output es usado para separar argumentos, a menos que este parámetro sea especificado, en cuyo caso éste será usado.

### Valores retornados

Devuelve una cadena codificada en forma URL.

### Registro de cambios

Versión | Descripción
--- | ---
5.1.2 | Se agregó el parámetro `separador_arg` .
5.1.3 | Los corchetes cuadrados son escapados.

### Ejemplos

Example #1 Uso simple de http_build_query()

`<?php
$datos = array('foo'=>'bar',
'baz'=>'boom',
'vaca'=>'leche',
'php'=>'procesador de hipertexto');
echo http_build_query($datos); // foo=bar&baz=boom&vaca=leche&php=procesador+de+hipertexto
echo http_build_query($data, '', '&amp;'); // foo=bar&amp;baz=boom&amp;vaca=leche\&amp;php=procesador+de+hipertexto
?>`

Example #2 http_build_query() con elementos indexados numéricamente.

`<?php
$datos = array('foo', 'bar', 'baz', 'boom', 'vaca' => 'leche',
'php' => 'procesador de hipertexto');
echo http_build_query($datos) . "\n";
echo http_build_query($datos, 'mivar_');
?>`

El resultado del ejemplo seria:

    0=foo&1=bar&2=baz&3=boom&vaca=leche&php=procesador+de+hipertexto
    mivar_0=foo&mivar_1=bar&mivar_2=baz&mivar_3=boom&vaca=leche&php=procesador+de+hipertexto

Example #3 http_build_query() con matrices complejas

`<?php
$datos = array('usuario'=>array('nombre'=>'Bob Smith',
'edad'=>47,
'sexo'=>'M',
'fdm'=>'5/12/1956'),
'pasatiempos'=>array('golf', 'opera', 'poker', 'rap'),
'hijos'=>array('bobby'=>array('edad'=>12,
'sexo'=>'M'),
'sally'=>array('edad'=>8,
'sexo'=>'F')),
'CEO');
echo http_build_query($datos, 'banderas_');
?>`

esto generará la salida: (acotada por razones de legibilidad)

    usuario%5Bnombre%5D=Bob+Smith&usuario%5Bedad%5D=47&usuario%5Bsexo%5D=M&
    usuario%5Bfdm%5D=5%2F12%2F1956&pasatiempos%5B0%5D=golf&pasatiempos%5B1%5D=opera&
    pasatiempos%5B2%5D=poker&pasatiempos%5B3%5D=rap&hijos%5Bbobby%5D%5Bedad%5D=12&
    hijos%5Bbobby%5D%5Bsexo%5D=M&hijos%5Bsally%5D%5Bedad%5D=8&
    hijos%5Bsally%5D%5Bsexo%5D=F&banderas_0=CEO

> Note: Sólo el elemento "CEO" indexado numéricamente en la matriz base recibió un prefijo. Los otros índices numéricos, encontrados bajo los pasatiempos, no requieren un prefijo tipo cadena para ser nombres legales de variables.

Example #4 Uso de http_build_query() con un objeto

`<?php
class miClase {
var $foo;
var $baz;
function miClase() {
$this->foo = 'bar';
$this->baz = 'boom';
}
}
$datos = new miClase();
echo http_build_query($datos); // foo=bar&baz=boom
?>`

### Ver también

- parse_str() - Divide la cadena en variables
- parse_url() - Procesar una URL y devolver sus componentes
- urlencode() - Codifica como URL una cadena
- array_walk() - Aplica una función del usuario a cada elemento de una matriz.

get_meta_tags
parse_url
URL Functions
PHP Manual