2011-03-03 10 views
6

Diciamo che ho URL come somefile.php?sort=id&way=desc.Modo per ottenere e modificare le variabili GET per creare collegamenti ipertestuali

Voglio scrivere una funzione (o usarne una già fatta) che mi permetta di aggiungere le prossime variabili all'URL e impostare quale voglio cancellare.

Ho pensato a qualcosa come function editGetVar("$add","$leave") dove $add sarebbe array con nuove variabili da aggiungere all'URL e $leave sarebbe array con variabili che devono rimanere nell'URL.

Esempio:

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

e voglio cancellare "acquirente" e aggiungere "azione", allora la a href sarebbe simile a questa:

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

Gradirei tutte le idee da voi.

risposta

10

Uso http_build_query:

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

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

Esattamente quello che stavo cercando. Grazie. – jwitos

+0

@jwitos: nessun problema. –

+0

anche se sarebbe saggio non modificare la variabile $ _GET, fare prima una copia – relipse

0

Esempio:

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

È possibile aggiungere/modificare una variabile come:

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

È possibile eliminare come:

unlink($_GET[ 'sort' ]); 

si può avvolgere in una funzione da soli;)

+2

Hai ew-spacing. –

+0

sì, sarebbe spietato digitare – lol

4

Credo che tu possa dividere l'URI con $parts = parse_url($my_rui), manipolare l'array risultante e incollarlo di nuovo insieme con http_build_query.

Problemi correlati