ホームページ >バックエンド開発 >PHPチュートリアル >PHPの使い方を詳しく解説 $_SERVER 変数_PHPチュートリアル
PHP $_SERVER に含まれる変数はすべてグローバル変数であり、スーパーグローバル変数と呼ぶことができます。以下に、一般的に使用される PHP $_SERVER の使用方法の詳細を整理します。
私がよく使う $_SERVER[] 変数
$_SERVER['HTTP_ACCEPT_LANGUAGE']//ブラウザ言語
$_SERVER['REMOTE_ADDR'] //現在のユーザー IP。
$_SERVER['REMOTE_HOST'] //現在のユーザーのホスト名
$_SERVER['REQUEST_URI'] //URL
$_SERVER['REMOTE_PORT'] //ポート。
$_SERVER['SERVER_NAME'] //サーバーホストの名前。
$_SERVER['PHP_SELF']//実行されるスクリプトのファイル名
$_SERVER['argv'] //スクリプトに渡されるパラメータ。
$_SERVER['argc'] //プログラムに渡されるコマンドラインパラメータの数。
$_SERVER['GATEWAY_INTERFACE']//CGI 仕様のバージョン。
$_SERVER['SERVER_SOFTWARE'] //サーバー識別の文字列
$_SERVER['SERVER_PROTOCOL'] //ページをリクエストするときの通信プロトコルの名前とバージョン
$_SERVER['REQUEST_METHOD']//ページアクセス時のリクエストメソッド
$_SERVER['QUERY_STRING'] //クエリ文字列。
$_SERVER['DOCUMENT_ROOT'] //現在実行中のスクリプトが配置されているドキュメントルートディレクトリ
$_SERVER['HTTP_ACCEPT'] //現在のリクエストの Accept: ヘッダーの内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] //現在のリクエストの Accept-Charset: ヘッダーの内容。
$_SERVER['HTTP_ACCEPT_ENCODING'] //現在のリクエストの Accept-Encoding: ヘッダーの内容
$_SERVER['HTTP_CONNECTION'] //現在のリクエストの Connection: ヘッダーの内容。例:「キープアライブ」。
$_SERVER['HTTP_HOST'] //現在のリクエストの Host: ヘッダーの内容。
$_SERVER['HTTP_REFERER'] //現在のページにリンクされている前のページの URL アドレス。
$_SERVER['HTTP_USER_AGENT'] //現在のリクエストの User_Agent: ヘッダーの内容。
$_SERVER['HTTPS']// https 経由でアクセスされた場合、空ではない値 (on) に設定され、それ以外の場合は off が返されます
$_SERVER['SCRIPT_FILENAME'] #現在実行中のスクリプトの絶対パス名。
$_SERVER['SERVER_ADMIN'] #管理者情報
$_SERVER['SERVER_PORT'] #サーバーが使用するポート
$_SERVER['SERVER_SIGNATURE'] #サーバーのバージョンと仮想ホスト名を含む文字列。
$_SERVER['PATH_TRANSLATED'] #現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。
$_SERVER['SCRIPT_NAME'] #現在のスクリプトのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。
$_SERVER['PHP_AUTH_USER'] #PHP が Apache モジュール モードで実行され、HTTP 認証関数を使用している場合、この変数はユーザーが入力したユーザー名です。
$_SERVER['PHP_AUTH_PW'] #PHP が Apache モジュール モードで実行され、HTTP 認証関数を使用している場合、この変数はユーザーが入力したパスワードです。
$_SERVER['AUTH_TYPE'] #PHP が Apache モジュール モードで実行され、HTTP 認証関数を使用している場合、この変数は認証タイプです
ページプログラム関連
•$_SERVER['PHP_SELF']: Web サイトのルート ディレクトリに対する相対パスと、ドキュメント ルートに関連する PHP プログラム名。
•$_SERVER['HTTP_REFERER']: 現在のページにリンクされている前のページの URL アドレス。
•$_SERVER['SCRIPT_NAME']: Web サイトのルート ディレクトリに対する相対パスと PHP プログラム ファイルの名前。
•$_SERVER['REQUEST_URI']: このページにアクセスするために必要な URI。
•$_SERVER['SCRIPT_FILENAME']: 現在実行中の PHP プログラムの絶対パスとファイル名。
•$_SERVER['PATH_TRANSLATED']: 現在の PHP プログラムが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。
•$_SERVER['QUERY_STRING']: クエリ文字列 (URL の最初の疑問符 ? 以降の内容 (# 以降の内容は除く))。
•$_SERVER['argv']: 現在の PHP プログラムに渡される引数。
•$_SERVER['argc']: コマンド ライン モードでは、プログラムに渡されるコマンド ライン パラメータの数が含まれます。
•$_SERVER['REQUEST_TIME']: リクエストが開始されたときのタイムスタンプ。PHP 5.1.0 以降で有効です。
•$_SERVER['REQUEST_METHOD']: ページにアクセスするときのリクエスト方法 (「GET」、「HEAD」、「POST」、「PUT」など)。
•$_SERVER['HTTP_ACCEPT']: 現在のリクエストの Accept: ヘッダーの内容。
•$_SERVER['HTTP_ACCEPT_CHARSET']: 現在のリクエストの Accept-Charset: ヘッダーの内容。例: 「iso-8859-1,*,utf-8」。
•$_SERVER['HTTP_ACCEPT_ENCODING']: 現在のリクエストの Accept-Encoding: ヘッダーの内容。例:「gzip」。
•$_SERVER['HTTP_ACCEPT_LANGUAGE']: 現在のリクエストの Accept-Language: ヘッダーの内容。例:「zh-cn」。
•$_SERVER['HTTP_CONNECTION']: 現在のリクエストの Connection: ヘッダー情報の内容。例:「キープアライブ」。
•$_SERVER['HTTP_HOST']: 現在のリクエストの Host: ヘッダー情報の内容。
•$_SERVER['HTTPS']: PHP プログラムが HTTPS プロトコルを通じてアクセスされる場合は、空ではない値に設定されます。
•$_SERVER['PHP_AUTH_DIGEST']: Apache モジュールとして実行している場合、HTTP ダイジェスト認証プロセス中に、この変数は (さらなる認証操作のために) クライアントによって送信された「Authorization」HTTP ヘッダーの内容に設定されます。
•$_SERVER['PHP_AUTH_USER']: PHP が Apache または IIS (PHP 5 は ISAPI) モジュール モードで実行されており、HTTP 認証機能が使用されている場合、この変数はユーザーが入力したユーザー名です。
•$_SERVER['PHP_AUTH_PW']: PHP が Apache または IIS (PHP 5 は ISAPI) モジュール モードで実行されており、HTTP 認証機能が使用されている場合、この変数はユーザーが入力したパスワードです。
•$_SERVER['AUTH_TYPE']: PHP が Apache モジュール モードで実行され、HTTP 認証関数が使用されている場合、この変数は認証タイプになります。
サーバーサイド関連
•$_SERVER['DOCUMENT_ROOT']: PHP プログラムが現在実行されているドキュメント ルート ディレクトリ。サーバー構成ファイルで定義されます。
•$_SERVER['GATEWAY_INTERFACE']: サーバーで使用される CGI 仕様のバージョン (例: "CGI/1.1")。
•$_SERVER['SERVER_ADDR']: PHP プログラムが現在実行されているサーバーの IP アドレス。
•$_SERVER['SERVER_NAME']: PHP プログラムが現在実行されているサーバーの名前。
•$_SERVER['SERVER_ADMIN']: Apache サーバー設定ファイルの SERVER_ADMIN パラメータ。
•$_SERVER['SERVER_PORT']: サーバーが使用するポート。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。
•$_SERVER['SERVER_SIGNATURE']: サーバーのバージョンと仮想ホスト名を含む文字列。
•$_SERVER['SERVER_SOFTWARE']: リクエストに応答するときにヘッダー情報で指定される、サーバーを識別する文字列。
•$_SERVER['SERVER_PROTOCOL']: ページを要求するときの通信プロトコルの名前とバージョン (例: "HTTP/1.0")。
その他雑貨
•$_SERVER['HTTP_USER_AGENT']: 現在のリクエストの User-Agent: ヘッダー情報の内容 この文字列は、ページにアクセスしているユーザー エージェントの情報を示します。
•$_SERVER['REMOTE_ADDR']: 現在のページを閲覧しているユーザーの IP アドレス。
•$_SERVER['REMOTE_HOST']: 現在のページを閲覧しているユーザーのホスト名。
•$_SERVER['REMOTE_PORT']: ユーザーがサーバーに接続するために使用するポート。
コマンドラインから PHP を実行する場合、上記の要素の一部は有効である (または実際の意味を持たない) ことに注意してください。
例 1
PHP は現在の URL パスを取得します
1,$_SERVER["QUERY_STRING"]
説明: クエリ文字列
2.$_SERVER["REQUEST_URI"]
説明: このページにアクセスするには URI が必要です
3,$_SERVER["SCRIPT_NAME"]
説明: 現在のスクリプトのパスが含まれます
4,$_SERVER["PHP_SELF"]
説明: 現在実行中のスクリプトのファイル名
例:
1. http://www.bKjia.c0m/ (ホームページを直接開きます)
結果:
$_SERVER["QUERY_STRING"] = ""
$_SERVER["REQUEST_URI"] = "/"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
2、http://www.bKjia.c0m/?p=222 (クエリ付き)
結果:
$_SERVER["QUERY_STRING"] = "p=222"
$_SERVER["REQUEST_URI"] = "/?p=222"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
3、http://www.bKjia.c0m/index.php?p=222&q=biuuu
結果:
$_SERVER["QUERY_STRING"] = "p=222&q=biuuu"
$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
$_SERVER["QUERY_STRING"] はクエリ文を取得します
例からわかるように、? 以降の値が取得されます。
$_SERVER["REQUEST_URI"] /
を含む、http://www.bKjia.c0m 以降の値を取得します
$_SERVER["SCRIPT_NAME"] は、index.php
などの現在のスクリプトのパスを取得します。
$_SERVER["PHP_SELF"] 現在実行中のスクリプトのファイル名
現在の URL: "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']
要約すると、QUERY_STRING、REQUEST_URI、SCRIPT_NAME、および PHP_SELF について深く理解すると、$_SERVER 関数でこれら 4 つの値を正しく呼び出すことができます。詳細な例を通じて、$_SERVER 関数の 4 つの変数 QUERY_STRING、REQUEST_URI、SCRIPT_NAME、および PHP_SELF の違いを学びます。