Inicio > PHP > davidcortesb > Leer variables de la URL situadas detrás de una #

Leer variables de la URL situadas detrás de una #

Experto:
Usuario:
Fecha: 06/02/2009
Valoración: (4,00 sobre 5) Categoría: PHP
30/12/2008
daegmu, usuario preguntando en PHP
Usuario
Hola,

querría saber si se pueden leer las variables situadas en una url detrás de #. Me encuentro con url tipo archivo.php?#id=7 y querría saber si de alguna manera el php o algún script me lo puede permitir.

Muchas gracias.
31/12/2008
daegmu, experto respondiendo en PHP
Experto
Hola,
por supuesto. Puedes acceder a estas variables con la matriz $_GET. En tu caso sería:
<?php
echo $_GET["id"];
?>
Por si no se lee bien, la matriz se escribe con un símbolo $ un símbolo _ la palabra GET y el nombre de la variable id encerrada entre comillas i corchetes.
Saludos.
David Cortés Braña
13/01/2009
daegmu, usuario preguntando en PHP
Usuario
El problema es que detrás del # no lo lee
14/01/2009
daegmu, experto respondiendo en PHP
Experto
Hola,
en este caso puedes separar primero la parte que te interesa y separar sus componentes:
<?php
$frag = parse_url($_SERVER["QUERY_STRING"], PHP_URL_FRAGMENT);
parse_str($frag[0]);
// Las variables de la URL ya existirán con sus valores
echo $id;
?>

Saludos.
David Cortés Braña
16/01/2009
daegmu, usuario preguntando en PHP
Usuario
Me da error en PHP_URL_FRAGMENT, si lo quito no funciona
16/01/2009
daegmu, experto respondiendo en PHP
Experto
Hola,
supongo que no habrás puesto comillas alrededor de PHP_URL_FRAGMENT pues no es una cadena sino una constante: debe escribirse tal y como te he indicado.
En todo caso puedes usar esta expresión alternativa, suponiendo siempre que existe el carácter # al principio del primer parámetro como has indicado:
<?php
$frag = substr(strstr($_SERVER["QUERY_STRING"], "#"), 1);
parse_str($frag);
// Las variables de la URL ya existirán con sus valores
echo $id;
?>

Saludos.
David Cortés Braña
06/02/2009
daegmu, usuario preguntando en PHP
Usuario
Muy Bien. Me ha sido de gran utilidad
Más opciones
Enlaces patrocinados