PHP 速習チュートリアル

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 を返します。