2012-11-17 14 views
20

Ich möchte eine URL und ihre Parameter erhalten. Beispiel:PHP Get URL mit Parameter

www.someweb.com/somepage.php?id=10 

Wie nur somepage.php?id=10 bekommen?

Ich bin schon versucht REQUEST_URI und PHP_SELF aber es gibt mir nur www.someweb.com/somepage.php oder somepage.php. Was ich will, ist nur der Seitenname und seine Parameter.

+0

meine Antwort Überprüfen Sie, korrigiert es einfach. und sag mir, ob es funktioniert. – samayo

+0

überprüfen Sie meinen Code-Chef –

+0

Sind Sie sicher, dass. Htaccess nicht stören oder etwas? $ _SERVER ['REQUEST_URI'] gibt mir '/somepage.php?id=10' - es wäre einfach, das führende '/' zu trimmen. $ _SERVER ['QUERY_STRING'] sollte dir 'id = 10' geben. Überprüfen Sie das und stellen Sie sicher, dass es durchkommt. –

Antwort

42

Schließlich fand diese Methode:

basename($_SERVER['REQUEST_URI']); 

Diese alle URLs mit Seitennamen angezeigt werden können. (z. B. index.php?id=1&name=rr&class=10).

+3

Dies funktioniert in Ihrem Fall, aber wenn der URL-Pfad 'tiefer' (zB www.someweb.com/somewhere/somepage.php?id=10) war, würde es immer nur den letzten Teil zurückgeben: 'somepage .php? id = 10 ' –

+0

Sicher. Das ist was ich brauche, Kumpel. : D –

5

$_SERVER['PHP_SELF'] für den Seitennamen und $_GET['id'] für einen bestimmten Parameter.

versuchen print_r($_GET);, um alle Parameter auszudrucken.

für Ihre Anfrage echo $_SERVER['PHP_SELF']."?id=".$_GET['id'];

Rückkehr alle Parameter echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];

+0

gibt es keine Möglichkeit ohne Verwendung $ _GET [ID]? Weil ich manchmal auch 2 oder 3 Parameter verwende. (Ich denke nur, um es einfacher als $ _GET zu machen, aber wenn es nur die Art zu machen, was ich will, ist es in Ordnung) –

+0

Wenn Sie mehr als einen Parameter verwenden, dann verwenden Sie Array wie, ID, ID2, ID3 und verwenden While-Schleife .. – samayo

+0

Es gibt eine Möglichkeit, verwenden Sie $ _SERVER ['PHP_SELF']. "?". $ _ SERVER ['QUERY_STRING'] ' –

-1
function curPageName() { 
return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); 
} 
echo "The current page is ".curPageName()."?".$_SERVER['QUERY_STRING']; 

Dies wird Ihnen Seitennamen bekommen, wird es die Zeichenfolge nach dem letzten Schrägstrich

+0

Nein. es funktioniert nicht. Basenname schließlich verwenden. Danke für die Antwort –

0

Hier ist wahrscheinlich bekommen, was Sie suchen für: php-get-url-query-string. Sie können es mit anderen vorgeschlagenen $_SERVER Parametern kombinieren.

11

für complette URL mit Protokoll, Servername und Parameter:

$base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST']; 
$url = $base_url . $_SERVER["REQUEST_URI"];