2011-03-03 11 views
6

Digamos que tengo una URL como somefile.php?sort=id&way=desc.Forma de obtener y editar variables GET para crear hipervínculos

Quiero escribir una función (o usar una ya hecha) que me permita agregar las siguientes variables a la URL y establecer cuáles quiero eliminar.

Pensé en algo como function editGetVar("$add","$leave") donde $add sería una matriz con nuevas variables para agregar a la URL y $leave sería una matriz con variables que deben permanecer en la URL.

Ejemplo:

somefile.php?sort=id&way=desc&buyer=retailer 

y quiero borrar "comprador" y añadir "acción", entonces el a href se vería así:

<a href="somefile.php?sort=id&way=desc&action=edit"> 

Agradecería cualquier idea de usted.

Respuesta

10

Uso http_build_query:

<?php 
unset($_GET['buyer']); 
$_GET['action'] = 'edit'; 

print '<a href="somefile.php?' . http_build_query($_GET) . '">!!</a>'; 
?> 
+0

Exactamente lo que estaba buscando. Gracias. – jwitos

+0

@jwitos: No hay problema. –

+0

aunque sería aconsejable no modificar la variable $ _GET, primero haga una copia – relipse

0

Ejemplo:

$url = '?'; 
foreach($_POST as $key => $value) 
{ 
    $url .= $key . '=' . $value . '&'; 
} 

Puede añadir/editar una variable como:

$_GET[ 'sort' ] = 'asc'; 

Puede eliminar como:

unlink($_GET[ 'sort' ]); 

se puede envolver en una función de sí mismo;)

+2

Usted tiene ew-espaciado. –

+0

Sí, eso sería despiadado para escribir – lol

4

Creo que puedes divide el URI con $parts = parse_url($my_rui), manipula la matriz resultante y pégala junto con http_build_query.

Cuestiones relacionadas