Verwendung von $ _SERVER in PHP

$ _SERVER ist eine der globalen PHP-Variablen mit der Bezeichnung Superglobals, die Informationen zu Server- und Ausführungsumgebungen enthält. Dies sind vordefinierte Variablen, sodass Sie von jeder Klasse, Funktion oder Datei aus immer darauf zugreifen können.

Die Einträge hier werden von Webservern erkannt, es kann jedoch nicht garantiert werden, dass jeder Webserver jeden Superglobal erkennt. Diese drei PHP $ _SERVER-Arrays verhalten sich alle ähnlich - sie geben Informationen über die verwendete Datei zurück. Wenn sie unterschiedlichen Szenarien ausgesetzt sind, verhalten sie sich in einigen Fällen unterschiedlich. Diese Beispiele können Ihnen bei der Entscheidung helfen, welche am besten zu Ihren Anforderungen passt. Eine vollständige Liste der $ _SERVER-Arrays finden Sie auf der PHP-Website.

$ _SERVER ['PHP_SELF']

PHP_SELF ist der Name des aktuell ausgeführten Skripts.

  • http://www.yoursite.com/example/ - -> /example/index.php
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test - -> / dir / test

Wenn Sie $ _SERVER ['PHP_SELF'] verwenden, wird der Dateiname /example/index.php mit und ohne den in der URL eingegebenen Dateinamen zurückgegeben. Wenn Variablen am Ende angehängt wurden, wurden sie abgeschnitten und erneut /example/index.php zurückgegeben. Die einzige Version, die zu einem anderen Ergebnis geführt hat, enthält Verzeichnisse, die nach dem Dateinamen angefügt sind. In diesem Fall wurden diese Verzeichnisse zurückgegeben.

$ _SERVER ['REQUEST_URI']

REQUEST_URI bezieht sich auf die URI, die für den Zugriff auf eine Seite angegeben wurde.

  • http://www.yoursite.com/example/ - -> /
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php?a=test
  • http://www.yoursite.com/example/index.php/dir/test - -> /example/index.php/dir/test

Alle diese Beispiele gaben genau das zurück, was für die URL eingegeben wurde. Es gab ein einfaches /, den Dateinamen, die Variablen und die angehängten Verzeichnisse zurück, so wie sie eingegeben wurden.

$ _SERVER ['SCRIPT_NAME']

SCRIPT_NAME ist der Pfad des aktuellen Skripts. Dies ist praktisch für Seiten, die auf sich selbst verweisen müssen.

  • http://www.yoursite.com/example/ - -> /example/index.php
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test - -> /example/index.php

In allen Fällen wurde hier nur der Dateiname /example/index.php zurückgegeben, unabhängig davon, ob er eingegeben, nicht eingegeben oder etwas angehängt wurde.