ホームページ >バックエンド開発 >PHPチュートリアル >PHP_SELF、PATH_INFO、SCRIPT_NAME、および REQUEST_URI: 違いは何ですか?

PHP_SELF、PATH_INFO、SCRIPT_NAME、および REQUEST_URI: 違いは何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 15:48:02195ブラウズ

PHP_SELF, PATH_INFO, SCRIPT_NAME, and REQUEST_URI: What's the Difference?

PHP_SELF、PATH_INFO、SCRIPT_NAME、REQUEST_URI: 違いを理解する

PHP アプリケーションを開発する場合、PHP_SELF と PATH_INFO の違いを理解することが重要です、SCRIPT_NAME、および REQUEST_URI。これらのサーバー変数は、現在のスクリプトのアドレスに関する情報を提供し、ナビゲーションや URL の書き換えに役立ちます。

PHP_SELF には通常、スクリプト名と任意のパスを含む、現在のスクリプトの完全な URI が含まれます。情報。ただし、リクエストが http://example.com/test.php/foo/bar の形式である場合は、SCRIPT_NAME とは異なる場合があります。

PATH_INFO にはパスが含まれますリクエスト URI の末尾にある情報。ただし、リクエスト URI が上記の形式である場合にのみ設定されます。

SCRIPT_NAME は、パス情報を除いた現在のスクリプトの名前を表します。 URI に / がない限り、通常は PHP_SELF と同じです。

REQUEST_URI には、パス、クエリ文字列、アンカーを含む完全なリクエスト URI が含まれます。クエリ文字列が存在する場合、またはサーバー側リダイレクトが使用されている場合は、PHP_SELF および SCRIPT_NAME とは異なります。

違いを説明するために、いくつかの実際的な例を次に示します。

例 1:
http://example.com/test.php/foo/bar

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

例 2:
http://example.com/test.php?foo=bar

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

例 3:
http://example.com/test。 php (mod_rewrite リダイレクトあり)

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

例 4:
IIS のカスタム エラー ページ:
http://example.com/test.php

  • SCRIPT_NAME: /404error.php
  • REQUEST_URI: /404error。 php?404;http://example.com/test.php

これらの違いを理解することで、適切なサーバー変数を効果的に利用して、PHP でのナビゲーション、URL 書き換え、エラー処理を処理できるようになります。アプリケーション。

以上がPHP_SELF、PATH_INFO、SCRIPT_NAME、および REQUEST_URI: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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