首頁  >  文章  >  後端開發  >  PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 在確定腳本位址方面有何不同?

PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 在確定腳本位址方面有何不同?

Linda Hamilton
Linda Hamilton原創
2024-11-02 06:48:02971瀏覽

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

確定PHP 中腳本的位址:PHP_SELF、PATH_INFO、SCRIPT_NAME、REQUEST_URI

開發PHP _LF.的區別、SCRIPT_NAME 和REQUEST_URI 對於可靠地確定腳本的位址至關重要。

PHP_SELF 表示腳本的完整 URL,包括查詢字串。在大多數情況下,它是檢索腳本完整地址的最可靠選項。但是,如果請求經過 mod_rewrite 指令,PHP_SELF 可能無法反映實際請求的 URL。

PATH_INFO 儲存腳本名稱後面的 URL 部分。使用 mod_rewrite 時此資訊可用,但在某些情況下可能為空。

SCRIPT_NAME 包含正在執行的腳本的實際檔名,不包含任何路徑資訊。與 PHP_SELF 不同,SCRIPT_NAME 不受 mod_rewrite 影響。

REQUEST_URI 捕捉完整的請求 URI,包括路徑、查詢字串和任何錨片段。在使用代理伺服器或處理重定向時非常有用。

為了說明差異,這裡有一些例子:

  • 範例1: 使用mod_rewrite 將http://example.com/test.php /foo/bar 重新導向到http://example.com/index.php/test.php/foo/bar 時:

    • PHP_SELF: /test.php/foo/bar
    • SCRIPT_NAME: /test.php
    • PATH_INFO: /foo/bar
  • 範例2:

    • 範例2:
    • 在http:// example.com/test.php?foo=bar 使用非空查詢字串時:
    • PHP_SELF: /test.php? foo=bar
    SCRIPT_NAME: /test. php
  • REQUEST_URI: /test.php?foo=bar

    • 範例3:
    • 使用mod_rewrite將http://example. com/test.php重定向到http://example.com/test2.php時間:
    • PHP_SELF: /test.php
    SCRIPT_NAME: /test2.php
REQUEST_URI: /test.php

透過了解這些差異,您可以選擇最合適的變數來滿足您的特定需求,確保可靠地存取腳本位址,無論Web 伺服器設定或URL 操作如何。

以上是PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 在確定腳本位址方面有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn