377 Stimmen

URL-Abfrage-String-Parameter abrufen

Was ist die "weniger Code benötigt" Weg, um Parameter aus einer URL-Abfragezeichenfolge zu erhalten, die wie folgt formatiert ist?

www.mysite.com/category/subcategory?myqueryhash

Die Ausgabe sollte sein: myqueryhash

Ich bin mir dieses Ansatzes bewusst:

www.mysite.com/category/subcategory?q=myquery

<?php
   echo $_GET['q'];  //Output: myquery
?>

590voto

Filip Roséen - refp Punkte 60138

$_SERVER['QUERY_STRING'] enthält die Daten, die Sie suchen.


DOKUMENTATION

130voto

medina Punkte 7816

Der PHP-Weg, dies zu tun, ist die Verwendung der Funktion parse_url die eine URL analysiert und ihre Komponenten zurückgibt. Einschließlich der Abfragezeichenfolge.

Exemple :

$url = 'www.mysite.com/category/subcategory?myqueryhash';
echo parse_url($url, PHP_URL_QUERY); # output "myqueryhash"

Vollständige Dokumentation hier

119voto

sbrbot Punkte 5507

Die Funktion parse_str() liest automatisch alle Abfrageparameter in ein Array.

Wenn die URL zum Beispiel lautet http://www.example.com/page.php?x=100&y=200 der Code

$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);

speichert die Parameterwerte in der $queries Array ( $queries['x']=100 , $queries['y']=200 ).

Blick auf Dokumentation von parse_str


EDIT

Laut der PHP-Dokumentation, parse_str() sollte nur mit einem zweiten Parameter (Array) verwendet werden. Verwendung von parse_str($_SERVER['QUERY_STRING']) auf diese URL werden Variablen erstellt $x y $y Dies macht den Code anfällig für Angriffe wie http://www.example.com/page.php?authenticated=1 .

49voto

Wenn Sie den gesamten Abfragetext benötigen:

$_SERVER["QUERY_STRING"]

33voto

user3816325 Punkte 509

Ich werde die beste Antwort empfehlen:

<?php
    echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>

Angenommen, der Benutzer hat http://example.com/?name=Hannes

Das obige Beispiel wird ausgegeben:

Hallo Hannes!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X