ホームページ  >  記事  >  バックエンド開発  >  PHP_SELF、PATH_INFO、SCRIPT_NAME、REQUEST_URI の主な違いは何ですか?

PHP_SELF、PATH_INFO、SCRIPT_NAME、REQUEST_URI の主な違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 07:28:02810ブラウズ

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

要求された URL が /test.php/foo/bar の形式の場合:

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

例 2: REQUEST_URI と SCRIPT_NAME

URL に空ではないクエリ文字列が入力されている場合:

  • SCRIPT_NAME: /test.php
  • REQUEST_URI: /test.php?foo=bar

例 3: 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。