(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Informationen über Server und Ausführungsumgebung
$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die Einträge in diesem Array werden vom Webserver erstellt, weshalb es keine Garantie dafür gibt, dass jeder Webserver alle diese Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Die meisten dieser Variablen werden jedoch in der » CGI/1.1-Spezifikation ausgewiesen und sind wahrscheinlich definiert.
Hinweis: Wenn PHP auf der Kommandozeile läuft, sind die meisten dieser Einträge nicht verfügbar oder haben keine Bedeutung.
Zusätzlich zu den unten aufgelisteten Elementen erstellt PHP weitere Elemente mit Werten aus Anfrage-Headern. Diese Einträge erhalten die Bezeichnung HTTP_
, gefolgt vom Namen des Headers in Großbuchstaben und mit Unterstrichen anstelle von Bindestrichen. Zum Beispiel wäre der Accept-Language
-Header als $_SERVER['HTTP_ACCEPT_LANGUAGE']
verfügbar.
'CGI/1.1'
. Hinweis: Unter Apache 2 müssen
UseCanonicalName = On
undServerName
gesetzt werden. Ansonsten reflektiert dieser Wert den Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
'HTTP/1.0'
. 'GET'
, 'HEAD'
, 'POST'
, 'PUT'
. Hinweis:
Ist die Requestmethode
HEAD
, wird ein PHP-Skript beendet, nachdem die Header gesendet wurden (sofern Ausgaben ohne die Verwendung des Ausgabepuffers (output buffering) erzeugt werden).
Hinweis: Der Webserver muss so konfiguriert sein, dass er diese Variable erzeugt. Zum Beispiel muss bei Apache in der httpd.conf die Direktive
HostnameLookups On
gesetzt werden, damit sie existiert. Siehe auch gethostbyaddr().
Der absolute Pfad des aktuell ausgeführten Skripts.
Hinweis:
Wenn ein Skript als CLI mit einem relativen Pfad wie file.php oder ../file.php ausgeführt wird, enthält $_SERVER['SCRIPT_FILENAME'] den vom Benutzer angegebenen relativen Pfad.
'80'
; wenn Sie beispielsweise SSL verwenden, wird dieser Wert auf den Port geändert, über den Sie Ihre verschlüsselte HTTP-Kommunikation abwickeln. Hinweis: Unter Apache 2 müssen
UseCanonicalName = On
sowieUseCanonicalPhysicalPort = On
gesetzt werden, um den physikalischen (wirklichen) Port zu erhalten; andernfalls kann dieser Wert gefälscht werden und gibt dann den Wert des physikalischen Ports zurück oder auch nicht. Es ist nicht sicher, sich in einem sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
Hinweis: Apache 2-Benutzer können die Direktive
AcceptPathInfo = On
in der httpd.conf verwenden, um einen Wert für PATH_INFO zu definieren.
/index.html
'. /some/stuff
enthalten. Beispiel #1 $_SERVER-Beispiel
<?php
echo $_SERVER['SERVER_NAME'];
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
www.example.com
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.