Una cadena de consulta o query string se puede definir como aquellos datos que se envían a través de la URL al momento de hacer un request a una página web. Un servidor web puede manejar y acceder a esta información y utilizarla de la forma que sea necesaria.
Un ejemplo de query string:
somepage?pg_id=2&parent_id=2&document&video
La estructura de una query string se compone de añadir los atributos en forma de clave=valor después de un signo de interrogación ‘?’, siendo este un separador para que el servidor sepa dónde empieza la cadena de consulta. Además, es posible enviar varios atributos mediante el uso de ‘&’ el cual hará que el servidor separe cada atributo y los pueda analizar individualmente.
Por último, las cadenas de consulta pueden manipularse del lado del cliente usando Javascript como del lado del servidor, en este caso vamos a ver cómo podemos convertir una query string a un array usando PHP.
Usemos un ejemplo para explicar
https://www.mydomain.tld/somepage?pg_id=2&parent_id=2&document&video
Y necesitamos convertirlo a un array.
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
Algunas veces usar solamente parse_str() no soluciona el problema obteniendo un resultado como este:
array (
[somepage?id] => 123
[lang] => gr
[size] => 300
)
En estos casos, para mejores resultados se puede combinar parse_str() con parse_url().
$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );
La función parse_url analiza y devuelve una matriz asociativa que contiene cualquiera de los diversos componentes de la URL que están presentes. Esta función acepta 2 parámetros:
- Url: Es la URL en sí misma para analizar, donde los caracteres no válidos se reemplazan por _ y es requerido por la función.
- Component: Donde se debe especificar uno de estos PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY o PHP_URL_FRAGMENT para recibir solo un componente URL específico como un valor tipo string (excepto cuando se da PHP_URL_PORT, en cuyo caso el valor de retorno será un integer), siendo opcional y enviando el valor -1 como default.
La función parse_str convertirá un string en variables, analizando la cadena de texto como si fuera un string de consulta pasado por medio de un URL y establece variables en el ámbito actual.
Esta función recibe 2 parámetros:
- str: Siendo la cadena de texto de la entrada y requerido por la función.
- arr: Indica el array donde estará el resultado del parse.
Aprovechando las ventajas de ambas funciones obtenemos el resultado:
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
¡Hasta un próximo post!
I’ve been exploring for a little for any high quality articles
or blog posts on this kind of house . Exploring in Yahoo I finally stumbled upon this site.
Reading this info So i’m happy to express that I’ve an incredibly
excellent uncanny feeling I came upon exactly what I needed.
I most indisputably will make sure to do not forget this website and provides
it a look regularly.
Hi, thanks for your words, I hope my posts have been helpful. Regards.