Estoy intentando redirigir de una página a otra sin perder los parámetros.
p. Ej. si tengo una página page.php? param1 = 1 & param2 = 2, ¿cuál es la forma más fácil de extraer "param1 = 1 & param2 = 2"?
Estoy intentando redirigir de una página a otra sin perder los parámetros.
p. Ej. si tengo una página page.php? param1 = 1 & param2 = 2, ¿cuál es la forma más fácil de extraer "param1 = 1 & param2 = 2"?
Uso $_SERVER['QUERY_STRING']
para acceder a todo lo que después el signo de interrogación.
lo tanto, si usted tiene la url:
http://www.sample.com/page.php?param1=1¶m2=2
entonces esto:
$url = "http://www.sample.com/page2.php?".$_SERVER['QUERY_STRING'];
echo $url;
volverá:
http://www.sample.com/page2.php?param1=1¶m2=2
yo haría
$querystring = '?'
foreach($_GET as $k=>$v) {
$querystring .= $k.'='.$v.'&';
}
$url .= substr($querystring, 0, -1);
donde $url
ya contiene todo antes de la?
también se podría utilizar $_SERVER['QUERY_STRING']
pero según el manual de PHP:
$ _SERVER es una matriz que contiene información tal como cabeceras, rutas y ubicaciones de scripts. Las entradas en esta matriz son creadas por el servidor web. * No hay garantía de que cada servidor web proporcione alguno de estos; los servidores pueden omitir algunos, o proporcionar otros que no se enumeran aquí. *
$_SERVER['QUERY_STRING']
Además de respuesta Robs:
Puede use http_build_query y $ _GET.
Esto es incorporado y puede tratar con matrices.
También puede manipular fácilmente los parámetros GET de esta manera, antes de volver a unirlos.
unset($_GET['unsetthis']);
$query = http_build_query($_GET);
Eso es técnicamente cierto, pero cualquier servidor web que esté utilizando casi con certeza proporciona '$ _SERVER ['QUERY_STRING']'; la mayoría de los sistemas basados en PHP dependen de que exista –
Y es fácilmente comprobable. – Kzqai
esto tampoco representará arreglos como: 'key [innerkey] = value'. te conseguirá: 'key = Array' – ivoba