Heim >Backend-Entwicklung >PHP-Tutorial >Wie unterscheiden sich PHP_SELF, PATH_INFO, SCRIPT_NAME und REQUEST_URI bei der Bestimmung der Adresse eines Skripts?

Wie unterscheiden sich PHP_SELF, PATH_INFO, SCRIPT_NAME und REQUEST_URI bei der Bestimmung der Adresse eines Skripts?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 06:48:021037Durchsuche

How do PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI Differ in Determining a Script's Address?

Bestimmen der Adresse eines Skripts in PHP: PHP_SELF, PATH_INFO, SCRIPT_NAME, REQUEST_URI

Verstehen Sie beim Entwickeln von PHP-Anwendungen die Unterschiede zwischen PHP_SELF, PATH_INFO , SCRIPT_NAME und REQUEST_URI sind entscheidend, um die Adresse eines Skripts zuverlässig zu bestimmen.

PHP_SELF stellt die vollständige URL des Skripts dar, einschließlich der Abfragezeichenfolge. In den meisten Fällen ist dies die zuverlässigste Option zum Abrufen der vollständigen Adresse eines Skripts. Wenn eine Anfrage jedoch mod_rewrite-Anweisungen durchläuft, spiegelt PHP_SELF möglicherweise nicht die tatsächlich angeforderte URL wider.

PATH_INFO speichert den Teil der URL nach dem Skriptnamen. Diese Informationen werden verfügbar, wenn mod_rewrite verwendet wird, sie können jedoch in bestimmten Situationen leer sein.

SCRIPT_NAME enthält den tatsächlichen Dateinamen des ausgeführten Skripts, ohne jegliche Pfadinformationen. Im Gegensatz zu PHP_SELF ist SCRIPT_NAME nicht von mod_rewrite betroffen.

REQUEST_URI erfasst den vollständigen Anforderungs-URI, einschließlich Pfad, Abfragezeichenfolge und etwaiger Ankerfragmente. Dies ist nützlich, wenn Sie mit Proxyservern arbeiten oder mit Weiterleitungen arbeiten.

Um die Unterschiede zu veranschaulichen, hier ein paar Beispiele:

  • Beispiel 1: Wenn Sie mod_rewrite verwenden, um http://example.com/test.php/foo/bar zu http://example.com/index.php/test.php/foo/bar umzuleiten:

    • PHP_SELF: /test.php/foo/bar
    • SCRIPT_NAME: /test.php
    • PATH_INFO: /foo/bar
  • Beispiel 2: Bei Verwendung einer nicht leeren Abfragezeichenfolge in http://example.com/test.php?foo=bar:

    • PHP_SELF: /test.php? foo=bar
    • SCRIPT_NAME: /test.php
    • REQUEST_URI: /test.php?foo=bar
  • Beispiel 3:Bei Verwendung von mod_rewrite, um http://example.com/test.php zu http://example.com/test2.php umzuleiten:

    • PHP_SELF: /test.php
    • SCRIPT_NAME: /test2.php
    • REQUEST_URI: /test.php

Wenn Sie diese Unterschiede verstehen, können Sie die am besten geeignete Variable auswählen für Ihre spezifischen Anforderungen und gewährleistet einen zuverlässigen Zugriff auf die Adresse eines Skripts, unabhängig von der Webserverkonfiguration oder der URL-Manipulation.

Das obige ist der detaillierte Inhalt vonWie unterscheiden sich PHP_SELF, PATH_INFO, SCRIPT_NAME und REQUEST_URI bei der Bestimmung der Adresse eines Skripts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn