PHP $_SERVER
1. PHP $_SERVER の概要
$_SERVER スーパーグローバルは、ヘッダー(Headers)、パス(Paths)、スクリプトの場所(Script locations)など、ウェブサーバーに関する情報を保持する変数です。
PHP のスーパーグローバルは組み込みの変数であり、関数の内部や外部を問わず、あらゆるスコープ(Scopes)から常にアクセスすることができます。
注記:$_SERVER 内のエントリーはウェブサーバーによって作成されます。そのため、使用しているサーバーの種類(Apache, Nginxなど)や環境(Environments)によっては、すべてのエントリーが必ずしも利用可能であるとは限らない点に注意してください。
2. $_SERVER の基本的な使用例
以下の例は、$_SERVER のいくつかの要素を使用してサーバー情報を出力する方法を示しています。
コード例:
<?php
// 現在実行されているスクリプトのファイル名を出力
echo $_SERVER['PHP_SELF'];
echo "<br>";
// ホストサーバーの名前を出力
echo $_SERVER['SERVER_NAME'];
echo "<br>";
// 現在のリクエストの Host ヘッダーを出力
echo $_SERVER['HTTP_HOST'];
echo "<br>";
// ユーザーが遷移前にいたページの完全な URL を出力(存在する場合)
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
// ユーザーのエージェント情報(ブラウザやOSなど)を出力
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
// 現在のスクリプトのパスを出力
echo $_SERVER['SCRIPT_NAME'];
?>3. $_SERVER の主要な要素一覧
以下の表は、$_SERVER の中で特によく使われる重要な要素をまとめたものです。
| 要素 / コード | 説明 |
|---|---|
$_SERVER['PHP_SELF'] | 現在実行中のスクリプトのファイル名を返します。 |
$_SERVER['GATEWAY_INTERFACE'] | サーバーが使用している CGI(Common Gateway Interface)のバージョンを返します。 |
$_SERVER['SERVER_ADDR'] | ホストサーバーの IP アドレスを返します。 |
$_SERVER['SERVER_NAME'] | ホストサーバーの名前を返します(例: www.volardev.com)。 |
$_SERVER['SERVER_SOFTWARE'] | サーバーの識別文字列を返します(例: Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] | 情報プロトコルの名称とリビジョンを返します(例: HTTP/1.1)。 |
$_SERVER['REQUEST_METHOD'] | ページへのアクセスに使用されたリクエストメソッドを返します(例: POST)。 |
$_SERVER['REQUEST_TIME'] | リクエスト開始時のタイムスタンプを返します(例: 1377687496)。 |
$_SERVER['QUERY_STRING'] | クエリ文字列経由でアクセスされた場合、その文字列を返します。 |
$_SERVER['HTTP_ACCEPT'] | 現在のリクエストからの Accept ヘッダーを返します。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 現在のリクエストからの Accept_Charset ヘッダーを返します(例: utf-8,ISO-8859-1)。 |
$_SERVER['HTTP_HOST'] | 現在のリクエストからの Host ヘッダーを返します。 |
$_SERVER['HTTP_REFERER'] | 現在のページの遷移元となった完全な URL を返します(ユーザーエージェントがサポートしていない場合があるため、信頼性は低いです)。 |
$_SERVER['HTTPS'] | スクリプトがセキュアな HTTP プロトコル(HTTPS)を通じて照会されたかどうかを判定します。 |
$_SERVER['REMOTE_ADDR'] | ユーザーが現在ページを閲覧している場所の IP アドレスを返します。 |
$_SERVER['REMOTE_HOST'] | ユーザーが現在ページを閲覧している場所のホスト名を返します。 |
$_SERVER['REMOTE_PORT'] | ウェブサーバーとの通信にユーザーのマシンで使用されているポート番号を返します。 |
$_SERVER['SCRIPT_FILENAME'] | 現在実行中のスクリプトの絶対パス名を返します。 |
$_SERVER['SERVER_ADMIN'] | サーバー設定ファイルの SERVER_ADMIN ディレクティブに設定された値を返します(例: [email protected])。 |
$_SERVER['SERVER_PORT'] | 通信のためにウェブサーバーが使用しているサーバーマシンのポート番号を返します(例: 80)。 |
$_SERVER['SERVER_SIGNATURE'] | サーバーが生成するページに追加される、サーバーのバージョンと仮想ホスト名を返します。 |
$_SERVER['PATH_TRANSLATED'] | 現在のスクリプトのファイルシステムベースのパスを返します。 |
$_SERVER['SCRIPT_NAME'] | 現在のスクリプトのパスを返します。 |
$_SERVER['SCRIPT_URI'] | 現在のページの URI を返します。 |