定義済みの変数

PHPは、実行する全てのスクリプトに定義済みの多くの変数を 提供します。しかし、これらの変数の多くは、 実行するサーバーの種類、サーバーのバージョンおよび設定、 その他の要素に依存しており、完全に記述することはできません。 これらの変数のいくつかはPHPをコマンドラインで実行した場合には 利用できません。

これらの要因はあるものの、Apache 1.3.6のデフォルトインストールを 行い、PHP3をモジュールとしてデフォルトインストールを行った状態で 定義済みの変数のリストを以下に示します。

全ての定義済み変数のリスト(そして他の多くの有益な情報)については、 phpinfoを参照(および使用)ください。

注意: このリストは、網羅的なものでも網羅的にしようとするものでもありません。 どんな定義済みの変数に自分のスクリプトからアクセス可能と期待できる のかに関するガイドラインであるに過ぎません。

Apache により設定される変数

これらの変数は、Apache Webサーバーにより 作成されるものです。他のWebサーバーを実行している場合には、 同じ変数が提供される保証はありません。いくつかの変数が 省略されたり、このリストにない別の変数が提供されている 可能性があります。 このリストにある変数の多くは、 CGI 1.1 の規約に 記述されており、他のWebサーバーでも利用可能であると期待することができます。

数は少ないですが、これらの変数のいくつかはPHPをコマンドラインで実行している時のみ 利用可能(または意味がある)であるということに注意して下さい。

GATEWAY_INTERFACE

サーバーが使用するCGI 規約のリビジョン。例えば、'CGI/1.1'。

SERVER_NAME

現在のスクリプトが実行されているサーバーホストの名前。 スクリプトが仮想ホストで実行されている場合、その仮想ホストに関して 定義された値となります。

SERVER_SOFTWARE

サーバーのIDを表す文字列。リクエストに応答する際に、ヘッダに表示されます。

SERVER_PROTOCOL

リクエストされたページを送信する際のプロトコルの名前及びリビジョン。 例えば、'HTTP/1.0'。

REQUEST_METHOD

ページにアクセスする際に使用されるリクエストメソッドの種類。 例えば、'HEAD', 'POST', 'PUT'。

QUERY_STRING

クエリー文字列。または、ページがアクセスされたパス。

DOCUMENT_ROOT

現在のスクリプトが実行されているサーバーのドキュメントルートディレクトリ。 サーバーの設定ファイルで定義されています。

HTTP_ACCEPT

現在のリクエストにおけるAccept:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。

HTTP_ACCEPT_CHARSET

現在のリクエストにおけるAccept-Charset:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。例えば、 'iso-8859-1,*,utf-8'。

HTTP_ENCODING

現在のリクエストにおけるAccept-Encoding:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。例えば、'gzip'。

HTTP_ACCEPT_LANGUAGE

現在のリクエストにおけるAccept-Language:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。例えば、'en'。

HTTP_CONNECTION

現在のリクエストにおけるConnection:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。例えば、'Keep-Alive'。

HTTP_HOST

現在のリクエストにおけるHost:ヘッダーの内容。 ただし、該当するヘッダーがある場合のみ定義されます。

HTTP_REFERER

ブラウザから現在のページを参照する際のページアドレス。 この変数は、ユーザーのブラウザにより設定されます。全てのブラウザが この変数を設定するわけではありません。

HTTP_USER_AGENT

現在のリクエストにおいてUser_Agent:ヘッダーが 定義されている場合にはその内容。 これは、現在のページを見るために使用されているブラウザソフトウエアを示す 文字列です。例えば、 Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586) となります。 特に、ページの機能をユーザーのブラウザの能力に合わせるために get_browserにこの値を指定することも可能です。

REMOTE_ADDR

現在のページを見ているユーザーのIPアドレス。

REMOTE_PORT

Webサーバーと通信するユーザーのマシンで使用されているポート。

SCRIPT_FILENAME

現在実行中のスクリプトの絶対パス。

SERVER_ADMIN

(Apacheの場合、)Webサーバーの設定ファイルでSERVER_ADMIN ディレクティブに指定された値。 スクリプトが仮想ホストで実行されている場合、その仮想ホストに関して 値が定義されます。

SERVER_PORT

Webサーバーで使用されているサーバーマシンの通信用ポート。 デフォルトの設定では、'80'となります。 例えば、SSLを使用している場合、セキュアHTTPポートの番号により この値は変化します。

SERVER_SIGNATURE

サーバーのバージョンおよび仮想ホスト名を含む文字列。 この文字列は、サーバーが生成したページに追加されます。ただし、 これが行われるのは、この機能を有効にした場合です。

PATH_TRANSLATED

サーバーが仮想的なパスを実際のパスへ変換した後で、 現在のスクリプトの(ドキュメントルートではなく)ファイルシステムに 基づくパス。

SCRIPT_NAME

現在のスクリプトのパスを有します。自分自身を指す必要があるページ では便利です。

REQUEST_URI

このページにアクセスするために指定されたURI。 例えば、'/index.html'。

環境変数

これらの変数は、PHPパーサが実行されている環境から PHP のグローバル変数領域にインポートされます。 その多くは、PHPを実行したシェルにより提供されたものであり、 システムが異なると恐らくシェルの種類も異なるので、固定したリストを 示すことはできません。定義済みの環境変数のリストについては、 使用するシェルのドキュメントを参照下さい。

CGI変数を含む他の環境変数は、PHPがサーバーモジュールとして実行 されているのか、CGIプロセッサとして実行されているのかに よらず設定されます。

PHP により定義される変数

これらの変数は、PHP自体により作成されます。

argv

スクリプトに渡される引数の配列。 スクリプトがコマンドラインで実行された場合、これにより、 C言語の形式でコマンドラインのパラメータにアクセスすることができます。 GETメソッドでコールされた場合、この配列にはクエリー文字列が含まれます。

argc

スクリプトに渡されたコマンドラインパラメータの数を有しています。 (コマンドラインで実行された場合)

PHP_SELF

現在実行しているスクリプトのドキュメントルートに相対パスで表したファイル名。 PHPがコマンドラインプロセッサとして実行されている場合、 この変数は利用できません。

HTTP_COOKIE_VARS

HTTPクッキーにより現在のスクリプトに渡された変数を有する連想配列。 設定ディレクティブ track_vars または <?php_track_vars?> ディレクティブのどちらかにより変数の追跡機能が有効の場合のみ利用可能です。

HTTP_GET_VARS

HTTP GETメソッドにより現在のスクリプトに渡された変数を有する連想配列。 設定ディレクティブ track_vars または <?php_track_vars?> ディレクティブのどちらかにより変数の追跡機能が有効の場合のみ利用可能です。

HTTP_POST_VARS

HTTP POSTメソッドにより現在のスクリプトに渡された変数を有する連想配列。 設定ディレクティブ track_vars または <?php_track_vars?> ディレクティブのどちらかにより変数の追跡機能が有効の場合のみ利用可能です。