PHP開発でよくお世話になる $_SERVER変数の中身を解説しています。
$_SERVER変数について
PHPでは、サーバに関する環境変数は $_SERVER グローバル変数(どこからでもアクセス出来る変数)に格納されます。
非常に便利なのですが、よくどの変数がどれだっけ?と忘れてしまうので、備忘録兼ねて書いておくことにします。
例には、実際にアクセスがあった時点の$_SERVER変数値を掲載していますので、ご自身のアクセス情報なども確認することができます。
変数名 | 説明 | 例 |
---|---|---|
$_SERVER['REMOTE_ADDR'] | 現在ページをみているユーザの IP アドレス。 | 3.94.202.151 |
$_SERVER['REMOTE_PORT'] | ユーザのマシンから Web サーバへの通信に使用されているポート番号 | 52478 |
$_SERVER['HTTP_REFERER'] | 現在のページに遷移する前にユーザエージェントが参照していた ページのアドレス(もしあれば)。 | |
$_SERVER['HTTP_USER_AGENT'] | 現在のリクエストに User-Agent: ヘッダが もしあればその内容。 | CCBot/2.0 (https://commoncrawl.org/faq/) |
$_SERVER['REMOTE_HOST'] | 現在のページにアクセスしているホスト名。DNS の逆引き検索は ユーザの REMOTE_ADDR に基づいています。 注意: Web サーバがこの値を生成できるように設定されている必要があります。 例えば Apache の場合 HostnameLookups On が httpd.conf に設定されていなければこの値は生成されません。 | |
$_SERVER['SERVER_ADDR'] | 現在のスクリプトが実行されているサーバの IP アドレスです。 | 202.226.39.150 |
$_SERVER['SERVER_NAME'] | 現在のスクリプトが実行されているサーバのホスト名です。 スクリプトがバーチャルホスト上で実行されている場合は そのバーチャルホスト名となります。 | www.en-pc.jp |
$_SERVER['HTTP_HOST'] | 現在のリクエストに Host: ヘッダが もしあればその内容。 | www.en-pc.jp |
$_SERVER['REQUEST_METHOD'] | ページにアクセスする際に使用されたリクエストのメソッド名です。 | GET |
$_SERVER['REQUEST_URI'] | ページにアクセスするために指定された URI。 | /tech/php_server/ |
$_SERVER['SCRIPT_NAME'] | 現在のスクリプトのパス。 スクリプト自身のページを指定するのに有用です。 | /index.php |
$_SERVER['PHP_SELF'] | 現在実行しているスクリプトのファイル名です。 ドキュメントルートから取得されます。 | /index.php |
$_SERVER['QUERY_STRING'] | ページがアクセスされた際にもし検索引数があればそれが格納されます。 | |
$_SERVER['DOCUMENT_ROOT'] | 現在実行されているスクリプトが存在するドキュメントルート ディレクトリです。 | 例:/var/www/xxx |
$_SERVER['SCRIPT_FILENAME'] | 現在実行されているスクリプトの絶対パス | 例:/var/www/xxx.php |
$_SERVER['GATEWAY_INTERFACE'] | サーバが使用している CGI のバージョンです。 | 例:CGI/1.1 |
$_SERVER['SERVER_PROTOCOL'] | ページがリクエストされた際のプロトコル名とバージョンです。 | 例:HTTP/1.1 |
$_SERVER['HTTP_ACCEPT'] | 現在のリクエストの Accept: ヘッダがもしあれば その内容。 | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
$_SERVER['HTTP_ACCEPT_LANGUAGE'] | 現在のリクエストに Accept-Language: ヘッダが もしあればその内容。 | en-US,en;q=0.5 |
$_SERVER['HTTP_ACCEPT_ENCODING'] | 現在のリクエストに Accept-Encoding: ヘッダが もしあればその内容。 | |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 現在のリクエストの Accept-Charset: ヘッダが もしあればその内容。 | |
$_SERVER['HTTP_CONNECTION'] | 現在のリクエストに Connection: ヘッダが もしあればその内容。 | close |
関連リンク
株式会社エン・PCサービスで開発したツール類や技術情報のご紹介。ウェブ開発を行う中で頻繁に使うものをツール化し、情報整理したものをまとめました。開発事業者様の補助ツールとしてご利用下さい。
ITについてなんでも相談に乗ってしまおう、というサービスを始めました。社内エンジニアの育成や情報システムの適切な管理の仕方、など。なんでもご相談ください。
Reverse-ProxyとWordPressでオウンドンメディアだけ別サーバーで動かす、という話です。実際に構築してハマった事とその解決方法をご紹介しています。
スクラッチ開発で、発注者と業者、それぞれが気を付けなければいけない事をお伝えしていき、いかにして開発を成功させるかを開発プロセスという観点からご紹介しています。