PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 之間的主要差異是什麼?

Patricia Arquette
發布: 2024-11-02 07:28:02
原創
856 人瀏覽過

What are the key differences between PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI?

了解PHP_SELF、PATH_INFO、SCRIPT_NAME 和REQUEST_URI**

開發PHP 應用程式時,了解這些伺服器變數之間的差異至關重要。以下是它們的用途細分:

PHP_SELF

  • 通常指向當前腳本文件,例如/index.php/faq/whatever
  • 在CodeIgniter 中,它總是index.php,因為請求被路由到主控制器。

PATH_INFO

  • 包含腳本名稱後的路徑資訊(不含查詢參數),例如/faq/whatever
  • 用於存取URI 的特定部分。

SCRIPT_NAME

  • 指向正在執行的實際PHP 腳本文件,例如/test.php
  • 與PHP_SELF 不同,它不包含任何路徑資訊或查詢參數。

REQUEST_URI

    表示完整的請求URI,包括路徑資訊和查詢參數,例如
  • /test.php?foo=bar
  • 用於在不存取伺服器配置的情況下確定完整的URL。

實際差異

範例1:PHP_SELF 與SCRIPT_NAME

如果請求的格式為/test.php/foo/bar

:

PHP_SELF:
    /test.php/foo/bar
  • SCRIPT_NAME:test
  • SCRIPT_NAME:test/test .php

範例2:REQUEST_URI 與SCRIPT_NAME

如果在URL 中輸入非空查詢字串:
  • SCRIPT_NAME: /test.php
  • REQUEST_URI:/test.php?foo=bar

>例如:使用Apache Mod Rewrite 的REQUEST_URI 與SCRIPT_NAME

使用伺服器端重新導向,例如/test.php 重寫為/test2.php:

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

    • 範例4:有錯誤處理的REQUEST_URI 與SCRIPT_NAME
  • 使用Apache mod_rewrite,
/test.php

404 錯誤可能會導致:

REQUEST_URI: /test.php SCRIPT_NAME: /404error.php選擇使用哪個伺服器變數取決於特定的應用程式要求。例如,如果您需要在沒有查詢參數的情況下存取路徑信息,則 PATH_INFO 就適合。如果您想要完整的請求 URI,REQUEST_URI 會提供此資訊。

以上是PHP_SELF、PATH_INFO、SCRIPT_NAME 和 REQUEST_URI 之間的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板