parse_str

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

parse_strAnaliza una string como una cadena de consulta URL

Descripción

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

Analiza la string string como si se tratara de los parámetros pasados a través de la URL. Todas las variables que identifica son creadas con sus valores respectivos (o en el array si result es proporcionado).

Parámetros

string

La string de entrada.

result

Una variable pasada por referencia, que será definida como un array conteniendo los pares clave-valor extraídos de string. Si el parámetro result no es pasado, una variable separada es definida en el ámbito local para cada clave.

Advertencia

El uso de esta función sin el parámetro result está muy fuertemente desaconsejado y no recomendado a partir de PHP 7.2. A partir de PHP 8.0.0, el parámetro result es obligatorio.

Valores devueltos

No devuelve ningún valor.

Historial de cambios

Versión Descripción
8.0.0 result ya no es opcional.
7.2.0 El uso de parse_str() sin el segundo argumento emite una nota E_DEPRECATED.

Ejemplos

Ejemplo #1 Ejemplo con parse_str()

<?php
$str
= "first=value&arr[]=foo+bar&arr[]=baz";

// Recomendado
parse_str($str, $output);
echo
$output['first'], PHP_EOL; // value
echo $output['arr'][0], PHP_EOL; // foo bar
echo $output['arr'][1], PHP_EOL; // baz
?>

Cualquier espacio o punto en los nombres de parámetros es convertido a guión bajo al crear claves de array o variables locales. Esto se debe a que los nombres de variables en PHP no pueden contener espacios o puntos, pero esto se aplica incluso cuando se utiliza esta función con el parámetro result.

Ejemplo #2 Deformación de nombres por parse_str()

<?php
parse_str
("My Value=Something", $output);
echo
$output['My_Value']; // Something
?>

Notas

Nota:

La función parse_str() se ve afectada por la directiva max_input_vars. Exceder este límite genera una advertencia E_WARNING, y cualquier variable más allá de este límite no es añadida al array de resultado. El valor por omisión es 1000; ajuste max_input_vars según sus necesidades.

Nota:

Todos los valores añadidos en el array result (o las variables creadas si el segundo parámetro no está definido) ya están decodificados con las mismas reglas que urldecode().

Nota:

Para obtener la cadena de consulta de la petición actual, se puede utilizar la variable $_SERVER['QUERY_STRING']. Asimismo, puede ser de interés leer la sección sobre las variables de fuentes externas.

Ver también