$ _SERVER Array Superglobale

Einer der wichtigsten Array vordefinierte ist ein Array $ _SERVER - es PHP-Interpreter setzt die Variablen vom Server erhalten. Ohne diese Variablen ist schwierig, die volle Unterstützung für Web-basierte Anwendungen zu implementieren. Im Folgenden finden Sie eine Beschreibung der wichtigsten Elemente des superglobalen Array $ _SERVER.

Bemerkung

Siehe vollständige Liste der Elemente in $ _SERVER ist möglich, entweder mit print_r () Funktion, die ein Abbild des Arrays druckt oder mit phpinfo () Funktion, die Informationen über PHP-Interpreter anzeigt.

Das Element $ _SERVER [ 'DOCUMENT_ROOT']

Das Element $ _SERVER [ 'DOCUMENT_ROOT'], um den Pfad zum Stammverzeichnis des Servers enthält, wenn das Skript in einem virtuellen Host ausgeführt wird, gibt dieses Element den Pfad in das Stammverzeichnis des virtuellen Hosts. dh in der Konfigurationsdatei httpd.conf virtuellen Host eine DocumentRoot Richtlinie hat, die festgelegt ist "D: / main", ein Element von $ _SERVER [ 'DOCUMENT_ROOT'] enthält den Wert "D: main".

Das Element $ _SERVER [ 'HTTP_ACCEPT']

Das Element von $ _SERVER [ 'HTTP_ACCEPT'] beschreibt Client-Einstellungen für die Art des Dokuments. Der Inhalt dieses Element wird aus dem HTTP-Überschrift extrahiert nehmen, die den Client an den Server sendet. Der Inhalt dieser Header könnte wie folgt aussehen

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

Accept-Header können Sie den Medientyp angeben, die den Client als Antwort auf Ihre Anfrage erhalten vorzieht. Dieser Header ermöglicht es Ihnen, den Server zu sagen, dass die Antwort auf eine kleine Anzahl von bevorzugten Typen begrenzt ist.

Das Symbol * wird zu einer Gruppe Medientypen in einer Reihe verwendet. Beispielsweise das Symbol * / * wird durch die Verwendung aller Arten gegeben, und die Bezeichnung des Typs / * definiert die Verwendung aller Subtypen des Typs Typ ausgewählt.

Bemerkung

Medientypen durch Komma getrennt.

Jede ist durch eine Reihe von Medien als zusätzlichen Satz von Parametern gekennzeichnet. Eine davon ist die sogenannte relative Präferenz Faktor q, der zwischen 0 und 1 liegt, bzw. von weniger bevorzugt bevorzugteren Typen. Die Verwendung mehrerer Parameter q, ermöglicht es der Client dem Server den relativen Grad der Präferenz zu sagen, für einen bestimmten Medientyp.

Bemerkung

In der Standardeinstellung ist q 1. Darüber hinaus wird durch den Medientyp, wird es durch ein Semikolon getrennt.

Ein Beispiel für die Art von Accept-Header:

Accept: audio/*; q=0.2, audio/basic

Dieser Titel stammt erste Art von Audio / * enthält alle Musikinstrumente und ist vorzugsweise 0,2-Verhältnis aus. Ein Komma gibt die Art von Audio / basic, für die der Koeffizient der Präferenz nicht angegeben und wird auf die Standardeinstellung von Eins gesetzt. Unter Berufung auf RFS2616 kann dieser Titel wie folgt interpretiert werden: "Ich ziehe es die Art von Audio / basic, aber ich kann auch Dokumente beliebigen anderen Audio-Art senden, wenn sie verfügbar sind, nach Präferenz Faktor rückläufig um mehr als 80%."

Ein Beispiel kann schwieriger sein.

Accept: text/plain; q=0.5, text/html,
text/x-dvi; q=0.8, text/xc

Bemerkung

Beachten Sie, dass das Element $ _SERVER [ 'HTTP_ACCEPT'] enthält genau die gleichen Informationen, aber ohne die ursprünglichen Accept-Header.

Dieser Header wird wie folgt interpretiert: Dokumenttypen text / html und Text / die xc werden bevorzugt, aber wenn sie nicht verfügbar sind, dann wird der Code-Client diese Anforderung zu geben, zieht text / x-dvi, und wenn nicht, dann wird er die Art des Textes nehmen / Ebene.

Das Element $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE']

Das Element von $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] beschreibt die Präferenzen des Kunden in Bezug auf die Sprache. Diese Informationen werden von der HTTP-Überschrift extrahiert Accept-Language, die der Kunde an den Server sendet. Man kann folgendes Beispiel anführen:

Accept-Language: ru, en; q=0.7

Das kann wie folgt interpretiert werden: Der Kunde russischer Sprache bevorzugt, aber in seiner Abwesenheit vereinbarten Dokumente in englischer Sprache zu akzeptieren. Das Element $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] enthält genau die gleichen Informationen, aber ohne die Accept-Language-Header:

ru, en; q=0.7

Der Gehalt des Elements $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] kann die Nationalität der Besucher zu bestimmen. Allerdings sind die Ergebnisse den, da viele Nutzer die englischen Versionen des Browsers zu verwenden, die den Server informiert, dass ein Besucher nur eine Sprache vorzieht - Englisch.

Das Element $ _SERVER [ 'HTTP_HOST']

Das Element von $ _SERVER [ 'HTTP_HOST'] enthält den Namen des Servers, die in der Regel ist der gleiche wie der Domain-Name der Website, auf dem Server befinden. In der Regel deckt sich mit dem Namen des $ _SERVER [ 'SERVER_NAME'] der Name in diesem Parameter angegeben. Der Parameter ist nur der Domain-Name ohne den Protokollnamen (http: //), dh

www.sofftime.ru

Das Element $ _SERVER [ 'HTTP_REFERER']

Das Element von $ _SERVER [ 'HTTP_REFERER'] ist die Adresse der Seite, von der ein Besucher auf dieser Seite kam. Das Ziel muss der Link sein. Erstellen Sie eine Zwei-Seiten-index.php und page.php.

Seite index.php

<?php
echo "<a href=page.php>Ссылка на страницу PHP</a><br />" ;
echo
"Содержимое $_SERVER['HTTP_REFERER'] - " .
$_SERVER [ 'HTTP_REFERER' ]
?>

page.php Seite ist der gleiche Inhalt, sondern auf die Seite index.php verbinden würde.

Seite page.php

<?php
echo "<a href=index.php>Ссылка на страницу PHP</a><br />" ;
echo
"Содержимое $_SERVER['HTTP_REFERER'] - " .
$_SERVER [ 'HTTP_REFERER' ]
?>

Im Übergang von einer Seite zur anderen, wird eine Referenz die Adresse der Seite angezeigt werden, der Übergang durchgeführt wurde.

Das Element $ _SERVER [ 'HTTP_USER_AGENT']

Das Element $ _SERVER [ 'HTTP_USER_AGENT'] enthält Informationen über den Typ und die Version des Browsers und des Betriebssystems, der Besucher.

Hier ist eine typische Inhalt dieser Zeichenkette: "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1)". Die Anwesenheit des Teilzeichenfolge "MSIE 6.0" zeigt an, dass der Besucher die Seite mit Internet Explorer 6.0 betrachtet. Die Zeichenfolge "Windows NT 5.1" darüber informiert, dass ab dem Betriebssystem von Windows XP.

Bemerkung

Für Windows 2000 ist ein Element $ _SERVER [ 'HTTP_USER_AGENT'] wie folgt: "Mozilla / 4.0 (compatible; MSIE 5.01; Windows NT 5.0) ')", während für Windows XP - "Mozilla / 4.0 (compatible; MSIE 6.0 Windows NT 5.1) ";.

Wenn der Besucher den Opera-Browser verwenden, um den Inhalt von $ _SERVER [ 'HTTP_USER_AGENT'] könnte wie folgt aussehen: "Mozilla / 4.0 (compatible; MSIE 5.0; Windows 98) Opera 6.04 [ru]". "MSIE 6.0" Substring ist auch vorhanden, was darauf hinweist, dass der Opera-Browser mit dem Internet Explorer kompatibel ist und verwendet die gleiche Windows-dynamische Bibliothek. Deshalb wird, wenn die Zeichenfolge durch den Browser zurückgegeben wird analysiert, so ist daran zu erinnern, dass Internet Explorer auf eine Zeichenfolge verweist, die die Teil "MSIE 6.0" enthält und nicht die Teil "Opera" enthält. Weiterhin kann aus dieser Linie geschlossen werden, dass der Benutzer das Betriebssystem Windows 98 verwendet.

Bemerkung

Der User-Agent von Firefox könnte wie Mozilla aussehen / 5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.8) Gecko / 20051111 Firefox / 1.5.

Wenn Sie den Netscape-Browser verwenden, um den Inhalt des Elements $ _SERVER [ 'HTTP_USER_AGENT'] könnte wie folgt aussehen: "Mozilla / 5.0 (X11; U; Linux i686; en-US; rv: 1.4) Gecko / 20030624 Netscape / 7.1". Die Zugehörigkeit zu diesem Browser kann durch die Teilkette "Netscape" identifiziert werden. Darüber hinaus können Sie sehen, dass der Besucher mit dem Internet kommt, das Linux-Betriebs Version mit Kernel für Pentium IV optimiert unter Verwendung in der grafischen Umgebung X-Window zu sein. Dieser Mechanismus ist für die Erfassung statistischer Daten nützlich, die Designer die Seite für die gängigsten Browser optimieren können.

Das Element $ _SERVER [ 'REMOTE_ADDR']

Das Element von $ _SERVER [ 'REMOTE_ADDR'] wird dem Kunden IP-Adresse setzen. Wenn auf dem lokalen Rechner getestet - wird diese Adresse 127.0.0.1 gleich sein. Wenn jedoch die Netzwerkvariablen Testen liefert Client-IP-Adresse oder den letzten Proxy, durch den ein Client den Server hat. Wenn der Client einen Proxy-Server verwendet die IP-Adresse, um herauszufinden, es mit Hilfe der variablen HTTP_X_FORWARDED_FOR Umgebung möglich ist, kann der Wert erhalten werden, unter Verwendung von getenv () Funktion.

Bemerkung

Proxy-Server sind Zwischen spezielle Server, die eine besondere Art von Service zu bieten: Verkehrskomprimierung, Datenverschlüsselung, die Anpassung für mobile Geräte, usw. Unter den vielen Proxies unterscheiden die so genannten anonymen Proxy-Servern, mit denen Sie den wahren kunden die IP-Adresse eines solchen Servers zu verbergen keine Variable HTTP_X_FORWARDED_FOR Umgebung zurückzukehren.

Das Entfernen der variablen HTTP_X_FORWARDED_FOR Umgebung

<?php
echo getenv ( HTTP_X_FORWARDED_FOR );
?>

Das Element $ _SERVER [ 'SCRIPT_FILENAME']

Das Element von $ _SERVER [ 'SCRIPT_FILENAME'] setzen den absoluten Pfad der Datei auf dem Root-Platte. Zum Beispiel, wenn der Server unter Windows Betriebssystem ausgeführt wird, ein solcher Weg könnte wie "d: main estindex.php" aussehen, das heißt Pfad auf der Scheibe, in UNIX-ähnliches Betriebssystem Pfad von dem Wurzelverzeichnis /, zum Beispiel "/var/share/www/test/index.php".

Das Element $ _SERVER [ 'SERVER_NAME']

Das Element von $ _SERVER [ 'SERVER_NAME'] platziert den Servernamen, in der Regel mit dem Domainnamen der Website zusammenfällt, die auf ihm befindet. Zum Beispiel

www.softtime.ru

Der Gehalt des Elements $ _SERVER [ 'SERVER_NAME'] ist oft der gleiche wie der Inhalt des Elements $ _SERVER [ 'HTTP_HOST']. Neben dem Servernamen $ _SERVER ermöglicht mehr Anzahl der Server-Parameter, wie zB die Server-IP-Adresse, der Listening-Port, um herauszufinden, ist ein Web-Server installiert und die Version des HTTP-Protokolls. Diese Informationen werden in den Elementen von $ _SERVER [ 'SERVER_ADDR'], $ _SERVER [ 'SERVER_PORT'], $ _SERVER [ 'SERVER_SOFTWARE'] und $ _SERVER [ 'SERVER_PROTOCOL'] bzw. platziert. Unten ist ein Beispiel von Datenelementen verwendet wird.

Die Verwendung von Elementen in $ _SERVER

<?php
echo "Имя сервера - " . $_SERVER [ 'SERVER_NAME' ]. "<br />" ;
echo
"IP-адрес сервера - " . $_SERVER [ 'SERVER_ADDR' ]. "<br />" ;
echo
"Порт сервера - " . $_SERVER [ 'SERVER_PORT' ]. "<br />" ;
echo
"Web-сервер - " . $_SERVER [ 'SERVER_SOFTWARE' ]. "<br />" ;
echo
"Версия HTTP-протокола - " . $_SERVER [ 'SERVER_PROTOCOL' ]. "<br />" ;
?>

Das Element $ _SERVER [ 'REQUEST_METHOD']

Das Element von $ _SERVER [ 'REQUEST_METHOD'] platziert die Anfrage Methode verwendet, um das Skript zu nennen: GET oder POST.

<?php
echo $_SERVER [ 'REQUEST_METHOD' ]; // GET
?>

Das Element $ _SERVER [ 'QUERY_STRING']

Das Element von $ _SERVER [ 'QUERY_STRING'] eingegeben, die Parameter an das Skript übergeben, wenn die Query-String ist die Adresse

http://www.mysite.ru/test/index.php?id=1&test=wet&id_theme=512

dann das Element $ _SERVER [ 'QUERY_STRING'] wird der gesamte Text nach dem "?". Wenn zum Beispiel an das Skript bezieht, unten dargestellt, wird im Query-String einen beliebigen Text nach dem "?" Platziert Wir erhalten eine Seite mit dem eingegebenen Text.

<?php
echo $_SERVER [ 'QUERY_STRING' ]; // id=1&test=wet&id_theme=512
?>

Das Element $ _SERVER [ 'PHP_SELF']

Das Element von $ _SERVER [ 'PHP_SELF'] platziert den Namen des Skripts, aus dem Stammverzeichnis des virtuellen Hosts beginnen, das heißt, wenn die Query-String ist die Adresse

http://www.mysite.ru/test/index.php?id=1&test=wet&id_theme=512

das Element von $ _SERVER [ 'PHP_SELF'] wird ein Fragment von "/test/index.php" enthalten. In der Regel wird das gleiche Fragment in ein Element von $ _SERVER platziert [ 'SCRIPT_NAME'].

Das Element $ _SERVER [ 'REQUEST_URI']

Das Element von $ _SERVER [ 'REQUEST_URI'] enthält den Namen des Skripts aus dem Stammverzeichnis des virtuellen Hosts und Parameter, das heißt, wenn die Query-String ist die Adresse:

http://www.mysite.ru/test/index.php?id=1&test=wet&id_theme=512

das Element von $ _SERVER [ 'REQUEST_URI'] ein Fragment von "/test/index.php?id=1&test=wet&id_theme=512" enthalten. Um die vollständige Adresse im Skript wiederherzustellen, die in der Query-String gesetzt wird, reicht es aus, eine Kombination von Elementen im Array $ _SERVER verwenden, unten

Vollständige Adresse des Skripts

<?php
echo "http://" . $_SERVER [ 'SERVER_NAME' ]. $_SERVER [ 'REQUEST_URI' ];
?>


1
178.20.156.230, 178.20.156.230, 66.249.93.30www.shram.kiev.uawww.shram.kiev.uahttp: //www.shram.kiev.ua/site/server.shtml
Array (36) {[ "REDIRECT_gzip-only-text / html"] => string (1) "1" [ "REDIRECT_RF"] => string (39) "/home/admin/data/www/shram.kiev. RE / site "[" REDIRECT_STATUS "] => string (3)" 200 "[" gzip-only-text / html "] => string (1)" 1 "[" HTTP_HOST "] => string (17)" www.shram.kiev.ua "[" HTTP_X_FORWARDED_FOR "] => string (44)" 178.20.156.230, 178.20.156.230, 66.249.93.30 "[" HTTP_X_FORWARDED_PROTO "] => string (4)" http "[" HTTP_X_REAL_IP " =]> string (12) "66.249.93.30" [ "HTTP_CONNECTION"] => string (5) "close" [ "HTTP_ACCEPT"] => string (3) "* / *" [ "HTTP_ACCEPT_CHARSET"] => string (7) "utf-8, *" [ "HTTP_VIA"] => string (34) "1,0 translate.google.com TWSFE / 0.9" [ "HTTP_USER_AGENT"] => string (60) "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1), gzip (GFE) "[" HTTP_ACCEPT_ENCODING "] => string (15)" gzip, deflate, br "[" PATH "] => string (29)" / sbin: / bin: / usr / sbin: / usr / bin "[" SERVER_SIGNATURE "] => string (120)"
Apache / 2.2.24 (FreeBSD) mod_python / 3.3.1 Python / 2.7.5 PHP / 5.4.15 Server bei www.shram.kiev.ua-Port 80
"[" SERVER_SOFTWARE "] => string (64)" Apache / 2.2.24 (FreeBSD) mod_python / 3.3.1 Python / 2.7.5 PHP / 5.4.15 "[" SERVER_NAME "] => string (17)" www .shram.kiev.ua "[" server_addr "] => string (14)" 178.20.156.230 "[" SERVER_PORT "] => string (2)" 80 "[" REMOTE_ADDR "] => string (12)" 66.249 .93.30 "[" DOCUMENT_ROOT "] => string (34)" /home/admin/data/www/shram.kiev.ua "[" SERVER_ADMIN "] => string (23)" [email protected] " [ "SCRIPT_FILENAME"] => string (44) "/home/admin/data/www/shram.kiev.ua/index.php" [ "REMOTE_PORT"] => string (5) "62338" [ "REDIRECT_QUERY_STRING"] => string (34) "& MY_REQUEST_URI = / site / server.shtml" [ "REDIRECT_URL"] => string (18) "/site/server.shtml" [ "GATEWAY_INTERFACE"] => string (7) "CGI / 1.1 "[" SERVER_PROTOCOL "] => string (8)" HTTP / 1.0 "[" REQUEST_METHOD "] => string (3)" GET "[" QUERY_STRING "] => string (34)" & MY_REQUEST_URI = / site / Server. shtml "[" REQUEST_URI "] => string (18)" /site/server.shtml "[" SCRIPT_NAME "] => string (10)" index.php "[" PHP_SELF "] => string (10)" /index.php "[" REQUEST_TIME_FLOAT "] => Schwimmer (1489246565.598) [" REQUEST_TIME "] => int (1489246565)}
1.0 translate.google.com TWSFE / 0,9


NEIN