the addget function below actually has more use when you dont use the recursive merge as such:
<?php
function AddGet($ArrayOrString){
if(is_array($ArrayOrString))
return http_build_query(array_merge($GLOBALS['_GET'], $ArrayOrString));
parse_str($ArrayOrString, $output);
return http_build_query(array_merge($GLOBALS['_GET'], $output));
}
?>
In this case, if the key is added again with a different value it will be replaced with the new value.
addget("change=true"); // ?change=true
addget("change=false"); // ?change=false
$_GET
$HTTP_GET_VARS [veraltet, nicht empfohlen]
$_GET -- $HTTP_GET_VARS [veraltet, nicht empfohlen] — HTTP GET-Variablen
Beschreibung
Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der URL-Parameter übergeben werden.
$HTTP_GET_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_GET_VARS und $_GET unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)
Changelog
| Version | Beschreibung |
|---|---|
| 4.1.0 | Einführung von $_GET als Ablösung des bis dahin existierenden $HTTP_GET_VARS. |
Beispiele
Beispiel #1 $_GET-Beispiel
<?php
echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>
Angenommen, der Benutzer gab ein http://example.com/?name=Hannes
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Hello Hannes!
Anmerkungen
Hinweis: Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.
$_GET
19-Mar-2009 03:01
29-Jan-2009 08:03
<?php
function AddGet($ArrayOrString){
if(is_array($ArrayOrString))
return http_build_query(array_merge_recursive($GLOBALS['_GET'], $ArrayOrString));
parse_str($ArrayOrString, $output);
return http_build_query(array_merge_recursive($GLOBALS['_GET'], $output));
}
?>
<a href="index.php?<?php echo AddGet(array("change"=>true,"jump"=>"42m"));?>">URL</a>
<a href="index.php?<?php echo AddGet("change=true&jump=42m");?>">URL</a>
Assuming the user entered http://example.com/?name=Hannes
The above example will output something similar to:
<a href="index.php?name=Hannes&change=1&jump=42m">URL</a>
<a href="index.php?name=Hannes&change=true&jump=42m">URL</a>
18-Sep-2008 11:38
This code is really useful for reproducing the values in the $_GET variable, and attaching that to a $_SERVER['PHP_SELF'] value when building the action value of a form tag, so that you don't lose any other values that could have been passed:
foreach ($_GET as $key => $value) {
if ($key != "C") { // ignore this particular $_GET value
$querystring .= $key."=".$value;
}
}
17-Jun-2008 02:57
Use this code if you want to retrieve your queries no matter what method is used. Hope it helps.
<?php
// By: RJ Regalado
// http://rjfiles.uni.cc/~php_examples/?id=1
$name = trim ((!empty($_POST['name'])) ? $_POST['name'] : $_GET['name'] );
if ( strlen ($name) < 1)
{
echo "Please enter your name";
} else {
printf ("Hello <b>%s</b><br>", $name);
printf ("Bonjour <b>%s</b><br>", $name);
printf ("Hallo <b>%s</b><br>", $name);
printf ("Ciao <b>%s</b><br>", $name);
printf ("Hola <b>%s</b><br>", $name);
}
?><hr>
<form method="POST">
Name: <input type="text" name="name">
<input type="submit" value="POST">
</form><hr>
<form method="GET">
Name: <input type="text" name="name">
<input type="submit" value="GET">
</form>
14-May-2008 11:38
Note that named anchors are not part of the query string and are never submitted by the browser to the server.
Eg.
http://www.xyz-abc.kz/index.php?title=apocalypse.php#doom
echo $_GET['title'];
// returns "apocalypse.php" and NOT "apocalypse.php#doom"
you would be better off treating the named anchor as another query string variable like so:
http://www.xyz-abc.kz/index.php?title=apocalypse.php&na=doom
...and then retrieve it using something like this:
$url = $_GET['title']."#".$_GET['na'];
Hope this helps someone...
14-May-2008 01:00
Note:
If nothing is set in the address bar, the value of $_GET['n'] will be NULL, not ""(empty string) or false.
