2013-05-13 10 views
9

Sagen Sie, der Benutzer lädt die folgende Seite: www.example.com/myDirectory/myPage.php?answer=yes
Und ich möchte mit PHP myPage.php?answer=yes von diesem erhalten. basename($_SERVER['PHP_SELF']) gibt jedoch nur myPage.php zurück. Wie würde ich das tun?Holen Sie sich den aktuellen Dateinamen mit URL-Parametern

+0

PHP parse_url() wird ein Array von Domain, Datei und Variablen erhalten. – Dinesh

Antwort

21

Sie können die Query-String anhängen, nachdem Sie get es als environment variable:

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

Wenn Sie die Möglichkeit, ohne Abfrage-String berücksichtigen müssen, einen bedingten Test hinzufügen:

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

Dies gibt '/ meinVerzeichnis/myPage.phpanswer = yes' zurück. Ich möchte 'myPage.php? Answer = yes'. – Mooseman

+0

@Mooseman können Sie auf '/' explodieren, und erhalten Sie das letzte Element im resultierenden Array – Ascherer

+0

Whoops. jetzt behoben. – Blazemonger

0
$_SERVER['QUERY_STRING'] 

geben Sie die Parameter

9

ist es einfacher ?:

+1

Ich weiß es nicht ; Sag mir! –

1

Für URLs mit nachfolgenden Parametern wird der folgende Teil den ersten Teil der aktuellen URL (d der Teil vorher?) innerhalb der Variablen $ current_url [0] und dann ausdrucken.

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