ホームページ  >  記事  >  バックエンド開発  >  スクリプトのアドレスの決定において、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 アプリケーションを開発する場合、PHP_SELF、PATH_INFO の違いを理解する、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: 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 中国語 Web サイトの他の関連記事を参照してください。

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