目錄
理解差異:PHP_SELF vs PATH_INFO vs SCRIPT_NAME vs REQUEST_URI
PHP_SELF
PATH_INFO
SCRIPT_NAME
REQUEST_URI
比較和可靠性
首頁 後端開發 php教程 PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 之間有什麼區別,我該使用哪一個?

PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 之間有什麼區別,我該使用哪一個?

Nov 02, 2024 pm 08:42 PM

What are the differences between PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI and which one should I use?

理解差異:PHP_SELF vs PATH_INFO vs SCRIPT_NAME vs REQUEST_URI

開發伺服器端應用程式時,確定要求的確切位址對於導航和處理至關重要。本文比較了四個 PHP 超全域變數:PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI,以便清楚了解它們的差異和可靠性。

PHP_SELF

PHP_SELF 表示目前正在執行的腳本。它的值包括腳本的完整 URI,包括任何子目錄或查詢字串。在提供的範例中,mod_rewrite 用於將請求路由到主控制器,PHP_SELF 將始終為“index.php”,無論實際請求的 URL 是什麼。

PATH_INFO

PATH_INFO 包含腳本名稱和任何查詢字串後面的 URI 部分。它表示相對於腳本的路徑資訊。使用相同的範例,如果要求的 URL 是“http://www.example.com/faq/whatever”,則 PATH_INFO 將保存“/faq/whatever”。

SCRIPT_NAME

SCRIPT_NAME給出目前執行腳本的完整路徑和檔案名稱。在大多數情況下,它與 PHP_SELF 類似,但在將 mod_rewrite 與 RewriteBase 一起使用或要求是子請求時有所不同。在 mod_rewrite 範例中,SCRIPT_NAME 將是“/test.php”而不是“index.php”。

REQUEST_URI

REQUEST_URI 包含客戶端發送的完整 URI,包括任何查詢字串。它是所請求 URL 最完整的表示。但是,在特定條件下,例如非空查詢字串、伺服器端重定向或 HTTP 錯誤(例如 404),它可能與 SCRIPT_NAME 和 PHP_SELF 不同。

比較和可靠性

以下範例說明了這些超全域變數之間的差異:

  • 當請求的URL 格式為「http://example.com/test.php/foo/bar」時:

    • PHP_SELF:/test.php/foo/bar
    • SCRIPT_NAME:/ test.php
    • PATH_INFO:/foo/bar
  • 輸入非空查詢字串時(http://example.com/test .php?foo=bar):

    • PHP_SELF: /test.php
    • SCRIPT_NAME: /test.php
    • PATH_INFO: (空白)
    • REQUEST_URI: /test.php?foo=bar
  • 伺服器端重定向生效時:

    • PHP_SELF:/test.php(原始請求)
    • SCRIPT_NAME:/test2.php(重定向請求)
    • REQUEST_URI:/test.php(原始請求)

基於這些範例,REQUEST_URI 提供了所請求URL 的最全面的表示。但是,它可能會受到伺服器端重定向或 HTTP 錯誤的影響。 PHP_SELF 和 SCRIPT_NAME 通常可以可靠地確定腳本的位址,但 PATH_INFO 在使用 mod_rewrite 時可用於擷取特定路徑資訊。

以上是PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 之間有什麼區別,我該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

11個最佳PHP URL縮短腳本(免費和高級) 11個最佳PHP URL縮短腳本(免費和高級) Mar 03, 2025 am 10:49 AM

11個最佳PHP URL縮短腳本(免費和高級)

在Laravel中使用Flash會話數據 在Laravel中使用Flash會話數據 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash會話數據

Instagram API簡介 Instagram API簡介 Mar 02, 2025 am 09:32 AM

Instagram API簡介

簡化的HTTP響應在Laravel測試中模擬了 簡化的HTTP響應在Laravel測試中模擬了 Mar 12, 2025 pm 05:09 PM

簡化的HTTP響應在Laravel測試中模擬了

php中的捲曲:如何在REST API中使用PHP捲曲擴展 php中的捲曲:如何在REST API中使用PHP捲曲擴展 Mar 14, 2025 am 11:42 AM

php中的捲曲:如何在REST API中使用PHP捲曲擴展

構建具有Laravel後端的React應用程序:第2部分,React 構建具有Laravel後端的React應用程序:第2部分,React Mar 04, 2025 am 09:33 AM

構建具有Laravel後端的React應用程序:第2部分,React

在Codecanyon上的12個最佳PHP聊天腳本 在Codecanyon上的12個最佳PHP聊天腳本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12個最佳PHP聊天腳本

Laravel中的通知 Laravel中的通知 Mar 04, 2025 am 09:22 AM

Laravel中的通知

See all articles