parse_str

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

parse_strAnaliza un string de una variable

Descripción

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

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).

Parámetros

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.

Advertencia

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.

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']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// Desaconsejado
parse_str($str);
echo
$first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // 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");
echo
$My_Value; // Something

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

Notas

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.

Ver también

  • parse_url() - Analiza un URL y devuelve sus componentes
  • pathinfo() - Devuelve información acerca de la ruta de un fichero
  • http_build_query() - Generar una cadena de consulta codificada estilo URL
  • urldecode() - Decodifica una cadena cifrada como URL