Descripción
string
http_build_query ( array datos_formulario [, string prefijo_numerico] )
Genera una cadena de consulta codificada estilo URL a partir de
la matriz asociativa (o indexada)
dada. datos_formulario puede ser una
matriz u objeto que contenga propiedades. Una matriz
datos_formulario puede ser una estructura
uni-dimensional sencilla, o una matriz de matrices (que a su vez
puede contener otras matrices). Si se usan índices
numéricos en la matriz base, y se provee un
prefijo_numerico, é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.
Ejemplo 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
?>
|
|
Ejemplo 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); /* Genera la salida: 0=foo&1=bar&2=baz&3=boom&vaca=leche&php=procesador+de+hipertexto */ echo http_build_query($datos, 'mivar_'); /* Genera la salida: mivar_0=foo&mivar_1=bar&mivar_2=baz&mivar_3=boom&vaca=leche&php=procesador+de+hipertexto */ ?>
|
|
Ejemplo 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[nombre]=Bob+Smith&usuario[edad]=47&usuario[sexo]=M&
usuario[fdm]=5%1F12%1F1956&pasatiempos[0]=golf&pasatiempos[1]=opera&
pasatiempos[2]=poker&pasatiempos[3]=rap&hijos[bobby][edad]=12&
hijos[bobby][sexo]=M&hijos[sally][edad]=8&hijos[sally][sexo]=F&banderas_0=CEO |
Nota:
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.
|
Ejemplo 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
?>
|
|
Vea también:
parse_str(),
parse_url(),
urlencode(), y
array_walk()