PHPでは、スーパーグローバル変数と呼ばれるPHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。$_ENV、$_FILES、$_GET、$_POST、$_SERVERなど、PHPのスーパーグローバル変数についてまとめています。
この記事の目次です。
1. スーパーグローバル変数とは
2. スーパーグローバル変数の種類(一覧表)
3. $_ENV(環境変数の情報)
4. $_FILES(POSTでUPされたファイル情報)
5. $_SERVER(サーバー情報)
PHPでは、PHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。 このような定義済みの変数をスーパーグローバル変数といいます。
PHPの変数はドル記号の後に変数名が続く形式で表されます。 通常ローカル変数として機能します。 ローカル変数はブロック内のスコープできる変数です。 ただし、関数外などのブロックがないところで宣言すると範囲は includeやrequireにより読みこまれたファイルも含みグローバル変数として機能します。 関数やメソッドの内部からアクセスする際は、「global $変数名;」を記述する必要があります。
グローバル変数とは、大域変数ともいい、ファイル全体で有効な変数です。 PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。
PHPのスーパーグローバル変数は、定義済み変数でスクリプト全体を通してすべてのスコープで使用可能な変数のことです。 関数やメソッドの内部からアクセスする際にも「global $変数名;」などとする必要はありません。
後で詳しくまとめますが、スーパーグローバルには次のようなものがあります。
スーパーグローバル変数の使用方法ですが、以下のようにパラメータの種類を添え字に指定して値を取得します。
$スーパーグローバル変数['パラメータ']
使用できる変数は、デフォルトでは、すべてのスーパーグローバルが使用可能です。 ただし、それに影響を与える設定項目もあります。 それと、スーパーグローバルは、関数やクラスメソッドの中の 可変変数 として使用することはできません。
以下にスーパグローバル変数の種類をまとめています。
変数名 | 保存情報 | 説明 |
---|---|---|
$_COOKIE | クッキー情報 | リクエストで渡されたクッキーの値が保存されます。 クライアントからCOOKIEで渡された情報が保存されます。 HTTP Cookieにより、サーバサイドのスクリプトに送信されるクッキー情報が取得できます。 |
$_ENV | 環境変数の情報 | 環境変数の値が保存されます。 環境変数の値が取得できます。 環境変数の名前が配列のキーとなります。 |
$_FILES | ファイル情報 | POST送信でアップロードされたファイルの情報が保存されます。 フォームのHTTP POSTファイルアップロードにより、サーバサイドのスクリプトに送信される情報が取得できます。 |
$_GET | GETパラメータ情報 | GETリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのGETメソッドにより、フォームからスクリプトに送信される値が取得できます。 |
$GLOBALS | グローバル変数の情報 | スクリプトの中で利用可能なすべての変数に対してのリファレンスが保存されます。 利用可能なすべてのグローバル変数の情報が取得できます。 |
$_POST | POSTパラメータ情報 | POSTリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのPOSTメソッドにより、フォームからスクリプトに送信される値が取得できます。 |
$_REQUEST | HTTPリクエスト情報 | HTTPのリクエスト情報が保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が1つの配列に保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が取得できます。 |
$_SERVER | サーバ情報 | Webサーバーに関する情報が保存されます。 Webサーバーや実行中のスクリプトに関する情報が取得できます。 |
$_SESSION | セッション情報 | スクリプトのセッション変数に関する情報が保存されます。 セッションに現在保存されている値が取得できます。 |
環境変数は、OSが持っている、OSの環境に関する情報が入った変数です。 PHPでは、スーパーグローバル変数$_ENVを使って参照できます。
以下はHOSTNAMEを表示する例です。
<?php if (isset($_ENV["HOSTNAME"])) { echo $_ENV["HOSTNAME"]; } ?>
グローバルの $_FILES には、アップロードされたファイルの情報が含まれます。 アップロードファイルの名前は任意の名前が利用できますが、以下の説明では<userfile>にしています。
パラメータ | 保存情報 | 参照方法 |
---|---|---|
name | クライアントマシンの元のファイル名。 | $_FILES['userfile']['name'] |
type | ファイルのMIME型。ブラウザ側に依存するため値は信用できない。 | $_FILES['userfile']['type'] |
size | バイト単位のアップロードされたファイルのサイズ。 | $_FILES['userfile']['size'] |
tmp_name | サーバー上でアップロードされたファイルが保存されているテンポラリファイルの名前。 | $_FILES['userfile']['tmp_name'] |
error | このファイルアップロードに関する エラーコード | $_FILES['userfile']['error'] |
$_SERVERには、Webサーバーやブラウザの情報、Webサーバーが動いているコンピュータのシステムに関する情報が保存されます。 Webサーバーについての有用な情報が数多く保存されています。
$_SERVERで参照できる情報には、主に次のようなものがあります。 $_SERVERの連想配列の添字に($_SERVER['HTTP_REFERER']のように)パラメータ名を文字列で指定します。
パラメータ | 保存情報 | 説明 |
---|---|---|
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サーバによっては保持されるものと保持されないものがあります。
プログラミング言語のPHPについてまとめています。読み方はピーエイチピーです。PHPとは?からやさしく説明しています。
更新履歴になります。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.225.72.161
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…