(PHP 4, PHP 5, PHP 7, PHP 8)
parse_str — Analiza un string de una variable
Analiza el string string
como si
se tratara de los parámetros pasados a través de la URL. Todas las variables
que se encuentran en ella se crean con sus valores respectivos (o en el array si result
es proporcionado).
string
El string de entrada.
result
Si el segundo argumento result
es proporcionado,
las variables se almacenarán en él, en forma de un array indexado.
El uso de esta función sin el parámetro result
está muy DESACONSEJADO y OBSOLETO
a partir de PHP 7.2.
A partir de PHP 8.0.0, el parámetro result
es obligatorio.
No devuelve ningún valor.
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 .
|
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
?>
Debido a que las variables en PHP no pueden tener puntos y espacios en sus nombres, estos se convierten en guiones bajos. Lo mismo se aplica a la denominación de los nombres de claves respectivos en caso de uso de esta función con el argumento de result
.
Ejemplo #2 Deformación de nombres por parse_str()
<?php
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
Nota:
parse_str()() se ve afectado por la directiva max_input_vars. Superar este límite emite un
E_WARNING
, y las variables que los superen no se añadirán al array de resultados. El valor predeterminado es 1000; ajuste max_input_vars según sea necesario.
Nota:
Todas las variables creadas (o valores devueltos en un array si el segundo argumento está establecido) ya están urldecode()d.
Nota:
Para obtener el
QUERY_STRING
actual, se puede utilizar la variable $_SERVER['QUERY_STRING']. Además, se puede leer la sección sobre las variables de fuentes externas.