【PHP】「$_SERVER」 — サーバー情報および実行時の環境情報

【PHP】
「$_SERVER」 — サーバー情報および実行時の環境情報




「$_SERVER」とは

「$_SERVER」は、「現在ページ」「アクセス元」「ドメイン名」「クライアントIP」など、様々なサーバー情報が保管されているグローバル変数。
サクセス元、ページURLによって、動作を振り分けたい時に使用する。



「$_SERVER」の書式

使用方法は、変数の使い方と変わらない。

参照方法
$変数名=$_SERVER["変数名"];


「$_SERVER」の変数名一覧

変数名取得値説明
PHP_SELFファイル名.拡張子 現在実行しているスクリプトのファイル名。
「http://example.com/test.php」というアドレス上にあるスクリプトでは $_SERVER['PHP_SELF'] は、「/test.php」。
__FILE__ 定数 には、カレント(すなわち読み込まれた)ファイルのパスとファイル名が含まれる。 PHP がコマンドラインから実行される場合、PHP 4.3.0 以降、 この変数にはスクリプト名が含まれる。
argv引数の配列 スクリプトに渡された引数の配列。
スクリプトがコマンドラインから 実行された場合、C 言語スタイルでコマンドライン引数に アクセスすることができます。GET メソッドを通してコールされた場合には 検索引数が格納。
argc引数の数 スクリプトに渡されたコマンドライン引数の数 (コマンドラインから実行した場合)。
GATEWAY_INTERFACE例 'CGI/1.1' サーバーが使用している CGI のバージョン。 例 'CGI/1.1'
SERVER_SOFTWARE レスポンスヘッダ上に書かれている、 サーバーの認識文字列。
SERVER_PROTOCOLプロトコル名 ページがリクエストされた際のプロトコル名とバージョン。 例.'HTTP/1.0'
REQUEST_METHODリクエストのメソッド名 ページにアクセスする際に使用されたリクエストのメソッド名。 'GET', 'HEAD', 'POST', 'PUT' など。
REQUEST_TIME リクエストの開始時のタイムスタンプ。PHP 5.1.0 以降で利用可能。
REQUEST_TIME_FLOAT リクエストの開始時のタイムスタンプ (マイクロ秒までの精度)。 PHP 5.4.0 以降で利用可能。
QUERY_STRINGパラメータ名=値& パラメータ名=値 ページがアクセスされた際にもし検索引数があればそれが格納。
アドレスの「?」より後ろの情報が表示される。
DOCUMENT_ROOT/home/ユーザー名/www 現在実行されているスクリプトが存在するドキュメントルートディレクトリ。
HTTP_ACCEPT 現在のリクエストの Accept: ヘッダがもしあれば その内容。
HTTP_ACCEPT_CHARSET例: 'iso-8859-1,*,utf-8' 現在のリクエストの Accept-Charset: ヘッダが もしあればその内容。
HTTP_ACCEPT_ENCODING例: 'gzip' 現在のリクエストに Accept-Encoding: ヘッダが もしあればその内容。
HTTP_ACCEPT_LANGUAGE例: 'en' 現在のリクエストに「Accept-Language:」ヘッダが もしあればその内容。
HTTP_CONNECTION例: 'Keep-Alive' 現在のリクエストに「Connection:」ヘッダが もしあればその内容。
HTTP_REFERER 現在のページに遷移する前にユーザーエージェントが参照していた ページのアドレス。
ユーザーエージェントに よってセットされるが、全てのユーザーエージェントが セットしているわけではない。
「HTTP_REFERER」を変更する機能を持つものもあるので、完全には信頼できない。
HTTP_USER_AGENT 現在のリクエストに User-Agent: ヘッダが もしあればその内容。
ページにアクセスしてきているユーザーエージェントのしるしの文字列。
典型的な例は、 Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。
get_browser() でこの値を使って ページの出力をそのブラウザにあわせたものにすること可能。
HTTPS スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定。
REMOTE_ADDR***.***.***.*** 現在ページをみているユーザーの IP アドレス。
REMOTE_HOSTSample.Host.Name.ne.jp 現在のページにアクセスしているホスト名。
REMOTE_PORTポート番号 ユーザーのマシンから Web サーバーへの通信に使用されているポート番号
SERVER_NAMEドメイン名 現在のスクリプトが実行されているサーバーのホスト名。 スクリプトがバーチャルホスト上で実行されている場合は そのバーチャルホスト名。
REMOTE_USER 認証されたユーザー。
REDIRECT_REMOTE_USER リクエストが内部でリダイレクトされた場合の認証されたユーザー。
SCRIPT_FILENAME 現在実行されているスクリプトの絶対パス
SERVER_ADMIN Web サーバーの設定ファイルの SERVER_ADMIN (Apache の場合)ディレクティブ にセットされている値。スクリプトがバーチャルホスト上で 実行されている場合、バーチャルホストに対して値が定義。
SERVER_PORT Web サーバーの通信ポートとして使用されているポート番号。デフォルトでは '80' 、例えば SSL を使用している場合は セキュア HTTP ポートとして設定されている値に変わる。
SERVER_SIGNATURE サーバー上で生成されたページに追加される、 サーバーのバージョン名とバーチャルホスト名の文字列。 Web サーバーの設定で有効になっていることが必要。
PATH_TRANSLATED バーチャルからリアルへのマッピングがなされた後の、 現在のスクリプトのファイルシステム上(ドキュメントルートではなく) でのパス。
SCRIPT_NAME 現在のスクリプトのパス。 スクリプト自身のページを指定するのに有用。 __FILE__ 定数には、カレント(すなわち読み込まれた)ファイルのパスとファイル名が 含まれる。
REQUEST_URI ページにアクセスするために指定された URI。例えば、 '/index.html'
PHP_AUTH_DIGEST HTTP ダイジェスト認証を 行っている場合、クライアントから送られた 'Authorization' ヘッダの 内容が設定されます(適切な認証処理を行うために利用します)。
PHP_AUTH_USER HTTP 認証しているときにそのユーザー名がセット。
PHP_AUTH_PW HTTP 認証しているときにそのユーザーの パスワードがセット。
AUTH_TYPE HTTP 認証しているときにその認証形式がセット。
PATH_INFO 実際のスクリプトファイル名とクエリ文字列の間にある、クライアントが提供するパス名情報。 たとえば、現在のスクリプトに http://www.example.com/php/path_info.php/some/stuff?foo=bar という URL でアクセスしていた場合の $_SERVER['PATH_INFO'] は /some/stuff 。
ORIG_PATH_INFO PHP で処理される前の 'PATH_INFO' の原本。