2013-05-13 2 views
9

Supponiamo che l'utente stia caricando la seguente pagina: www.example.com/myDirectory/myPage.php?answer=yes
E voglio usare PHP per ottenere myPage.php?answer=yes da quello. Tuttavia, basename($_SERVER['PHP_SELF']) restituisce solo myPage.php. Come potrei farlo?Ottieni il nome file corrente con i parametri URL

+0

PHP parse_url() restituirà una serie di dominio, di file e ottenere le variabili. – Dinesh

risposta

21

È possibile aggiungere la stringa di query dopo aver get come un environment variable:

$myurl = basename($_SERVER['PHP_SELF']) . "?" . $_SERVER['QUERY_STRING']; 

Se è necessario considerare la possibilità di non stringa di query, aggiungere un test condizionale:

$myurl = strlen($_SERVER['QUERY_STRING']) ? basename($_SERVER['PHP_SELF'])."?".$_SERVER['QUERY_STRING'] : basename($_SERVER['PHP_SELF']); 
+0

Restituisce '/ myDirectory/myPage.phpanswer = yes'. Voglio 'myPage.php? Answer = yes'. – Mooseman

+0

@Mooseman puoi esplodere su '/' e ottenere l'ultimo elemento nell'array risultante – Ascherer

+0

whoops. risolto ora – Blazemonger

0
$_SERVER['QUERY_STRING'] 

ti darà i parametri

9

è più facile ?:

basename($_SERVER['REQUEST_URI']) 
+1

non so ; Dimmi! –

1

Per gli URL con parametri finali, di seguito verrà inserita la prima parte dell'URL corrente (ad es. la parte prima?) all'interno della variabile $ current_url [0] e quindi stamparla.

<? 
$current_url = explode("?", $_SERVER['REQUEST_URI']); 
echo $current_url[0] ; 
?>