Superglobale Variablen wurden nach PHP 4.1.0 aktiviert. Dabei handelt es sich um Variablen, die mit dem PHP-System geliefert werden und im gesamten Umfang eines Skripts verfügbar sind.
In PHP sind mehrere Superglobals vordefiniert, was bedeutet, dass sie im gesamten Umfang eines Skripts verfügbar sind. Sie können es ohne besondere Anweisungen in Funktionen und Klassen verwenden.
Liste der superglobalen PHP-Variablen:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
In diesem Kapitel erklären wir einige häufig verwendete superglobale Variablen und stellen die übrigen Variablen in den nächsten Kapiteln vor.
$GLOBALS ist eine superglobale Variablengruppe in PHP, auf die im gesamten Umfang eines PHP-Skripts zugegriffen werden kann.
$GLOBALS ist ein globales kombiniertes Array, das alle Variablen enthält. Der Name der Variablen ist der Schlüssel des Arrays.
Das folgende Beispiel zeigt, wie die superglobale Variable $GLOBALS verwendet wird:
<?php $x = 75 ; $ y = 25 ; Zusatz ( ) { $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] } Zusatz ( ) ; Echo $z ; >
Im obigen Beispiel ist z eine superglobale Variable im Array $GLOBALS, auf die auch außerhalb der Funktion zugegriffen werden kann.
$_SERVER ist ein Array mit Informationen wie Header, Pfad und Skriptspeicherorten. Die Elemente in diesem Array werden vom Webserver erstellt. Es gibt keine Garantie dafür, dass jeder Server alle Artikel anbietet; Server ignorieren möglicherweise einige oder servieren Artikel, die hier nicht aufgeführt sind.
Das folgende Beispiel zeigt, wie Elemente in $_SERVER verwendet werden:
<?php Echo $_SERVER [ ' PHP_SELF ' ] ; echo „ <br> “ ; Echo $_SERVER [ ' SERVER_NAME ' ] ; echo „ <br> “ ; Echo $_SERVER [ ' HTTP_HOST ' ] ; echo „ <br> “ ; Echo $_SERVER [ ' HTTP_REFERER ' ] ; echo „ <br> “ ; Echo $_SERVER [ ' HTTP_USER_AGENT ' ] ; echo „ <br> “ ; Echo $_SERVER [ ' SCRIPT_NAME ' ] ; >
Die folgende Tabelle listet die wichtigen Elemente in allen $_SERVER-Variablen auf:
Element/Code | beschreiben |
---|---|
$_SERVER['PHP_SELF'] | Der Dateiname des aktuell ausgeführten Skripts, bezogen auf das Dokumentstammverzeichnis. Beispielsweise führt die Verwendung von $_SERVER['PHP_SELF'] in einem Skript unter http://example.com/test.php/foo.bar zu /test.php/foo.bar. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (d. h. enthaltenden) Datei. Ab PHP-Version 4.3.0 enthält diese Variable den Skriptnamen, wenn PHP im Befehlszeilenmodus ausgeführt wird. Diese Variable ist in früheren Versionen nicht verfügbar. |
$_SERVER['GATEWAY_INTERFACE'] | Die vom Server verwendete Version der CGI-Spezifikation; zum Beispiel „CGI/1.1“. |
$_SERVER['SERVER_ADDR'] | Die IP-Adresse des Servers, auf dem das Skript derzeit ausgeführt wird. |
$_SERVER['SERVER_NAME'] | Der Hostname des Servers, auf dem das Skript derzeit ausgeführt wird. Wenn das Skript auf einem virtuellen Host ausgeführt wird, wird der Name durch den für diesen virtuellen Host festgelegten Wert bestimmt. (z. B.: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | Server-Identifikationszeichenfolge, die in den Header-Informationen bei der Antwort auf die Anfrage angegeben wird. (z. B. Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | Der Name und die Version des Kommunikationsprotokolls, das beim Anfordern der Seite verwendet wird. Beispiel: „HTTP/1.0“. |
$_SERVER['REQUEST_METHOD'] | Die für den Zugriff auf die Seite verwendete Anforderungsmethode, zum Beispiel „GET“, „HEAD“, „POST“, „PUT“. |
$_SERVER['REQUEST_TIME'] | Der Zeitstempel, als die Anfrage gestartet wurde. Verfügbar seit PHP 5.1.0. (z. B.: 1377687496) |
$_SERVER['QUERY_STRING'] | Abfragezeichenfolge (Abfragezeichenfolge), falls vorhanden, über die der Seitenzugriff erfolgt. |
$_SERVER['HTTP_ACCEPT'] | Der Inhalt des Accept:-Elements im aktuellen Anforderungsheader, sofern vorhanden. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | Der Inhalt des Accept-Charset:-Elements im aktuellen Anforderungsheader, sofern vorhanden. Zum Beispiel: „iso-8859-1,*,utf-8“. |
$_SERVER['HTTP_HOST'] | Der Inhalt des Host:-Felds im aktuellen Anforderungsheader, falls vorhanden. |
$_SERVER['HTTP_REFERER'] | Leitet den Benutzeragenten an die Adresse der Seite vor der aktuellen Seite weiter, sofern vorhanden. Wird durch die Benutzeragenteneinstellungen bestimmt. Nicht alle Benutzeragenten legen dieses Element fest, und einige bieten auch die Funktion zum Ändern von HTTP_REFERER. Kurz gesagt, der Wert ist nicht vertrauenswürdig. ) |
$_SERVER['HTTPS'] | Wird auf einen nicht leeren Wert gesetzt, wenn auf das Skript über das HTTPS-Protokoll zugegriffen wird. |
$_SERVER['REMOTE_ADDR'] | Die IP-Adresse des Benutzers, der die aktuelle Seite anzeigt. |
$_SERVER['REMOTE_HOST'] | Der Hostname des Benutzers, der die aktuelle Seite durchsucht. Die umgekehrte DNS-Auflösung hängt nicht von der REMOTE_ADDR des Benutzers ab. |
$_SERVER['REMOTE_PORT'] | Die Portnummer, die auf dem Computer des Benutzers für die Verbindung zum Webserver verwendet wird. |
$_SERVER['SCRIPT_FILENAME'] | Der absolute Pfad des aktuell ausgeführten Skripts. |
$_SERVER['SERVER_ADMIN'] | Dieser Wert gibt den Parameter SERVER_ADMIN in der Apache-Serverkonfigurationsdatei an. Wenn das Skript auf einem virtuellen Host ausgeführt wird, ist dieser Wert der Wert dieses virtuellen Hosts. (z. B.: [email protected]) |
$_SERVER['SERVER_PORT'] | Der vom Webserver verwendete Port. Der Standardwert ist „80“. Bei Verwendung einer sicheren SSL-Verbindung ist dieser Wert der vom Benutzer festgelegte HTTP-Port. |
$_SERVER['SERVER_SIGNATURE'] | Eine Zeichenfolge, die die Serverversion und den Namen des virtuellen Hosts enthält. |
$_SERVER['PATH_TRANSLATED'] | Der Basispfad des Dateisystems (nicht das Stammverzeichnis des Dokuments), in dem sich das aktuelle Skript befindet. Dies ist das Ergebnis, nachdem der Server von einem virtuellen auf einen realen Pfad abgebildet wurde. |
$_SERVER['SCRIPT_NAME'] | Enthält den Pfad zum aktuellen Skript. Dies ist nützlich, wenn die Seite auf sich selbst verweisen muss. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen des aktuellen Skripts (z. B. einer Include-Datei). |
$_SERVER['SCRIPT_URI'] | URI wird verwendet, um die Seite anzugeben, auf die zugegriffen werden soll. Zum Beispiel „/index.html“. |
PHP $_REQUEST wird zum Sammeln von Daten verwendet, die von HTML-Formularen übermittelt werden.
Das folgende Beispiel zeigt ein Formular mit Eingabefeldern und Absenden-Buttons. Wenn der Benutzer Formulardaten durch Klicken auf die Schaltfläche „Senden“ übermittelt, werden die Formulardaten an die Skriptdatei gesendet, die im Aktionsattribut des <form>-Tags angegeben ist. In diesem Beispiel geben wir die Datei zur Verarbeitung der Formulardaten an. Wenn Sie möchten, dass eine andere PHP-Datei diese Daten verarbeitet, können Sie den angegebenen Namen der Skriptdatei ändern. Dann können wir die superglobale Variable $_REQUEST verwenden, um Eingabefelddaten in der Form zu sammeln:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type ="submit"></form><?php $name = $_REQUEST['fname']; echo $name ?></body></html>
PHP $_POST wird häufig zum Sammeln von Formulardaten verwendet. Geben Sie dieses Attribut im HTML-Formular-Tag an: „method="post".
Das folgende Beispiel zeigt ein Formular mit Eingabefeldern und Absenden-Buttons. Wenn der Benutzer Formulardaten durch Klicken auf die Schaltfläche „Senden“ übermittelt, werden die Formulardaten an die Skriptdatei gesendet, die im Aktionsattribut des <form>-Tags angegeben ist. In diesem Beispiel geben wir die Datei zur Verarbeitung der Formulardaten an. Wenn Sie möchten, dass eine andere PHP-Datei diese Daten verarbeitet, können Sie den angegebenen Namen der Skriptdatei ändern. Dann können wir die superglobale Variable $_POST verwenden, um die Eingabefelddaten in der Form zu sammeln:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type ="submit"></form><?php $name = $_POST['fname']; echo $name ?></body></html>
PHP $_GET wird auch häufig zum Sammeln von Formulardaten verwendet. Geben Sie dieses Attribut im HTML-Formular-Tag an: „method="get".
$_GET kann auch in der URL gesendete Daten sammeln.
Angenommen, wir haben eine HTML-Seite mit Hyperlink, die folgende Parameter enthält:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">Testen Sie $GET</a></body></html>
Wenn der Benutzer auf den Link „Test $GET“ klickt, werden die Parameter „subject“ und „web“ an „test_get.php“ gesendet. Sie können dies über die Variable $_GET in der Datei „test_get.php“ abrufen Daten.
Das folgende Beispiel zeigt den Code der Datei „test_get.php“:
<html><body><?php echo „Study“ . $_GET['subject']
Tipp: Wenn Sie mehr über $_POST und $_GET erfahren möchten, besuchen Sie unser Kapitel über PHP-Formulare.