定義済み変数
サーバー変数: $_SERVER
注: (現在の主流の開発言語として) PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_SERVER_VARS が使用されていました。
$_SERVER は、ヘッダー、パス、スクリプトの場所などを含む配列です。配列のエンティティは Web サーバーによって作成されます。すべてのサーバーがすべてのメッセージを生成するという保証はありません。サーバーは一部のメッセージを無視したり、以下にリストされていない新しいメッセージを生成したりする可能性があります。これは、これらの変数の多くが CGI (もうあまり使用されていない) 1.1 仕様で指定されていることを意味するため、慎重に検討する必要があります。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_SERVER_VARS のように、関数またはメソッド内でアクセスするためにグローバル $_SERVER を使用する必要はありません。
$HTTP_SERVER_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません。 (注: $HTTP_SERVER_VARS と $_SERVER は異なる変数であり、PHP (現在の主流の開発言語として) はそれらを別の方法で処理します。)
register_globals ディレクティブが設定されている場合、これらの変数はすべてのスクリプトでも使用できます。 _SERVER 配列と $HTTP_SERVER_VARS 配列。関連情報については、「セキュリティ」セクションの「登録グローバルの使用」を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
以下にリストされている $_SERVER 要素の一部が使用できない場合があります。コマンド ラインから PHP を (現在の主流の開発言語として) 実行する場合、以下にリストされている要素はほとんど有効ではありません (または実質的な意味がない) ことに注意してください。
"php (現在の主流の開発言語として)_SELF"
ドキュメントルートに関連する、現在実行中のスクリプトのファイル名。たとえば、スクリプト内で $_SERVER[php(現在の主流の開発言語として)_SELF を URL アドレス http://example.com/test.php(現在の主流の開発言語として)/foo.bar ] で使用すると、次の結果が得られます。 /test.php (現在の主流の開発言語として)/foo.bar の結果。
php (現在の主流の開発言語として) がコマンドラインモードで実行されている場合、この変数は無効です。
"argv"
このスクリプトに渡される引数。スクリプトがコマンド ライン モードで実行されると、argv 変数が C スタイルのコマンド ライン引数としてプログラムに渡されます。 GET メソッドが呼び出されると、この変数には要求されたデータが含まれます。
"argc"
プログラムに渡されるコマンド ライン引数の数が含まれます (コマンド ライン モードで実行している場合)。
「GATEWAY_INTERFACE」
サーバーで使用される CGI の標準バージョン (現在は使用している人は多くありません)。たとえば、「cgi (現在はあまり使用していない)/1.1」などです。
SERVER_NAME
スクリプトが現在実行されているサーバーホストの名前。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。
SERVER_SOFTWARE
リクエストに応答するときにヘッダーに指定される、サーバーを識別する文字列。
"SERVER_PROTOCOL"
ページをリクエストするときの通信プロトコルの名前とバージョン。たとえば、「HTTP/1.0」です。
"REQUEST_METHOD"
ページにアクセスする際のリクエストメソッド。例: 「GET」、「HEAD」、「POST」、「PUT」。
"QUERY_STRING"
クエリの文字列。
"DOCUMENT_ROOT"
現在実行中のスクリプトが配置されているドキュメント ルート ディレクトリ。サーバー構成ファイルで定義されます。
「HTTP_ACCEPT」