トップ 言語 PHP 基礎編 文法 スーパーグローバル変数

PHPのスーパーグローバル変数―環境変数やサーバー情報の取得方法など

環境変数やサーバー情報の取得方法など。PHPのスーパーグローバル変数についてまとめています。

グローバル変数

PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。

このように「global」を付けて宣言された変数をグローバル変数といいます。

スーパーグローバル変数

PHPでは、PHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。 このような定義済みの変数をスーパーグローバル変数といいます。

スーパーグローバル変数の使用方法ですが、以下のようにパラメータの種類を添え字に指定して値を取得します。

$スーパーグローバル変数['パラメータ']

以下にスーパグローバル変数の種類をまとめています。

スパーグローバル変数の種類
変数名保存情報説明
$GLOBALS グローバル変数の情報 スクリプトの中で利用可能なすべての変数に対してのリファレンスが保存されます。 利用可能なすべてのグローバル変数の情報が取得できます。
$_SERVER サーバ情報 Webサーバーに関する情報が保存されます。 Webサーバーや実行中のスクリプトに関する情報が取得できます。
$_GET GETパラメータ情報 GETリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのGETメソッドにより、フォームからスクリプトに送信される値が取得できます。
$_POST POSTパラメータ情報 POSTリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのPOSTメソッドにより、フォームからスクリプトに送信される値が取得できます。
$_COOKIE クッキー情報 リクエストで渡されたクッキーの値が保存されます。 クライアントからCOOKIEで渡された情報が保存されます。 HTTP Cookieにより、サーバサイドのスクリプトに送信されるクッキー情報が取得できます。
$_FILES ファイル情報 POST送信でアップロードされたファイルの情報が保存されます。 フォームのHTTP POSTファイルアップロードにより、サーバサイドのスクリプトに送信される情報が取得できます。
$_ENV 環境変数の情報 環境変数の値が保存されます。 環境変数の値が取得できます。 環境変数の名前が配列のキーとなります。
$_REQUEST HTTPリクエスト情報 HTTPのリクエスト情報が保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が1つの配列に保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が取得できます。
$_SESSION セッション情報 スクリプトのセッション変数に関する情報が保存されます。 セッションに現在保存されている値が取得できます。

環境変数

環境変数は、OSが持っている、OSの環境に関する情報が入った変数です。 PHPでは、スーパーグローバル変数$_ENVを使って参照できます。

サーバー情報

$_SERVERには、Webサーバーやブラウザの情報、Webサーバーが動いているコンピュータのシステムに関する情報が保存されます。 Webサーバーについての有用な情報が数多く保存されています。

$_SERVERで参照できる情報には、主に次のようなものがあります。 $_SERVERの連想配列の添字に($_SERVER['HTTP_REFERER']のように)パラメータ名を文字列で指定します。

$_SERVERで参照できる主なパラメータ
パラメータ保存情報説明
PHP_SELF スクリプト名 現在のスクリプト名をドキュメントルートからの相対パスで表したスクリプト名です。
SERVER_SOFTWARE サーバー識別名 サーバーを識別する文字列です。Apache XXXX(Unix)PHP/XXというようなWebサーバーとPHPのバージョン文字列となります。
SERVER_NAME ホスト名 URLに含まれるホスト名、DNSエイリアス、またはIPアドレスです。
GATEWAY_INTERFACE CGIバージョン CGI標準のどのバージョンにしたがっているかの情報です。
SERVER_PROTOCOL リクエストプロトコル名 リクエスト時のプロトコルの名前とリビジョン情報です。(例:HTTP/1.1)
SERVER_PORT ポート番号 リクエストの送信先のサーバーのポート番号です。
REQUEST_METHOD メソッド 直前の通信におけるデータの受け渡し方法です。 クライアントがドキュメントを取得するために使用したメソッドです。
PATH_INFO URLのリソースパス クライアントが指定した追加のパス要素です。(例 /aaa/bbb)
PATH_TRANSLATED ファイル名 サーバーがPATH_INFOの値をファイル名に変換したものです。(例:/var/www/html/aaa/bbb)
SCRIPT_NAME URLのパス 現在のページへのURLパスです。
QUERY_STRING URLのパラメータ URLの?以降の内容です。
REMOTE_HOST クライアントの端末のホスト名 このページをリクエストしたクライアントマシンのホスト名です。 DNSが存在しない場合は空白になります。
REMOTE_ADDR クライアントのIPアドレス クライアントのIPアドレスです。
AUTH_TYPE 認証方式 パスワードで保護されている場合のそのページの保護にしようした認証方式です。
REMOTE_USER ユーザ名 パスワードで保護されている場合のユーザ名です。
REMOTE_INDENT クライアントホストから取得したユーザ名 サーバー側でidentdのチェックを行うように設定されている場合のリクエスト元のホストから取得したユーザー名です。 簡単に偽装できるので認証に使用してはだめです。
CONTENT_TYPE コンテンツタイプ PUTリクエストやPOSTリクエストの際の付属情報のコンテンツタイプです。
CONTENT_LENGTH コンテンツの長さ PUTリクエストやPOSTリクエストの際の付属情報の長さです。
HTTP_USER_AGENT ユーザーエージェント 直前の通信におけるクライアントのブラウザやOSに関する情報です。
HTTP_REFERER 前のページ 直前の通信における呼び出しもとのURLです。
HTTP_HOST ホストヘッダ情報 ホストヘッダの情報です。
SERVER_ADDR サーバーのIPアドレス サーバーのIPアドレスです。
DOCUMENT_ROOT ドキュメントルート Webサーバーのドキュメントルートのパスです。
SERVER_ADMIN サーバ管理者 Webサーバー管理者のメールアドレスです。
COMPUTERNAME コンピュータ名 コンピュータ名です。

なお、上記のパラメータは使用しているWebサーバによっては保持されるものと保持されないものがあります。

もっと知識を広げるための参考

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Bcc /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /RESTEasy /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴

スポンサーリンク