スーパー グローバル変数は、PHP 4.1.0 以降で有効になりました。これらは PHP システムに付属する変数であり、スクリプトのスコープ全体で使用できます。
いくつかのスーパーグローバルは PHP で事前定義されており、スクリプトのスコープ全体で使用できることを意味します。特別な指示なしで関数やクラスで使用できます。
PHP スーパーグローバル変数のリスト:
$グローバル
$_サーバー
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_クッキー
$_セッション
この章では、一般的に使用されるいくつかのスーパー グローバル変数について説明し、残りの変数については次の数章で紹介します。
$GLOBALS は、PHP スクリプトのスコープ全体でアクセスできる PHP のスーパー グローバル変数グループです。
$GLOBALS は、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。
次の例は、スーパー グローバル変数 $GLOBALS の使用方法を示しています。
<?php $x = 75 ; $ y = 25 ;追加( ) { $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] ; 追加( ) ; $ z ;
上記の例では、z は $GLOBALS 配列内のスーパー グローバル変数であり、関数の外部からもアクセスできます。
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
次の例は、$_SERVER の要素の使用方法を示しています。
<?phpエコー$ _SERVER [ ' PHP_SELF ' ] ; " <br> " ; $ _SERVER [ ' SERVER_NAME ' ] ; " <br> " ; $ _SERVER [ ' HTTP_HOST ' ] ; " <br> " ; $ _SERVER [ ' HTTP_REFERER ' ] ; " <br> " ; $ _SERVER [ ' HTTP_USER_AGENT ' ] ; " <br> " ; $ _SERVER [ ' SCRIPT_NAME ' ] ;
次の表に、すべての $_SERVER 変数の重要な要素を示します。
要素/コード | 説明する |
---|---|
$_SERVER['PHP_SELF'] | ドキュメントルートに関連する、現在実行中のスクリプトのファイル名。たとえば、http://example.com/test.php/foo.bar のスクリプトで $_SERVER['PHP_SELF'] を使用すると、/test.php/foo.bar になります。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。 PHP バージョン 4.3.0 以降、PHP がコマンド ライン モードで実行されている場合、この変数にはスクリプト名が含まれます。この変数は以前のバージョンでは使用できません。 |
$_SERVER['ゲートウェイ_インターフェイス'] | サーバーで使用される CGI 仕様のバージョン。たとえば、「CGI/1.1」。 |
$_SERVER['SERVER_ADDR'] | スクリプトが現在実行されているサーバーの IP アドレス。 |
$_SERVER['SERVER_NAME'] | スクリプトが現在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。 (例: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | リクエストに応答するときにヘッダー情報で指定されるサーバー識別文字列。 (例: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | ページをリクエストするときに使用される通信プロトコルの名前とバージョン。たとえば、「HTTP/1.0」です。 |
$_SERVER['REQUEST_METHOD'] | ページにアクセスするために使用されるリクエスト メソッド。たとえば、「GET」、「HEAD」、「POST」、「PUT」。 |
$_SERVER['REQUEST_TIME'] | リクエストが開始されたときのタイムスタンプ。 PHP 5.1.0 以降で利用可能です。 (例: 1377687496) |
$_SERVER['QUERY_STRING'] | クエリ文字列 (クエリ文字列) (存在する場合)。これを介してページ アクセスが実行されます。 |
$_SERVER['HTTP_ACCEPT'] | 現在のリクエストヘッダー内の Accept: 項目の内容 (存在する場合)。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 現在のリクエスト ヘッダー内の Accept-Charset: 項目の内容 (存在する場合)。例: 「iso-8859-1,*,utf-8」。 |
$_SERVER['HTTP_HOST'] | 現在のリクエストヘッダーの Host: フィールドの内容 (存在する場合)。 |
$_SERVER['HTTP_REFERER'] | 現在のページの前にあるページのアドレス (存在する場合) にユーザー エージェントを誘導します。ユーザーエージェント設定によって決定されます。すべてのユーザーエージェントがこの項目を設定するわけではなく、一部のユーザーエージェントは HTTP_REFERER を変更する機能も提供します。要するに、その値は信頼できません。 ) |
$_SERVER['HTTPS'] | スクリプトが HTTPS プロトコル経由でアクセスされる場合は、空ではない値に設定します。 |
$_SERVER['REMOTE_ADDR'] | 現在のページを表示しているユーザーの IP アドレス。 |
$_SERVER['REMOTE_HOST'] | 現在のページを閲覧しているユーザーのホスト名。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。 |
$_SERVER['REMOTE_PORT'] | ユーザーのマシンで Web サーバーに接続するために使用されるポート番号。 |
$_SERVER['SCRIPT_FILENAME'] | 現在実行中のスクリプトの絶対パス。 |
$_SERVER['SERVER_ADMIN'] | この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメーターを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。 (例:[email protected]) |
$_SERVER['SERVER_PORT'] | Web サーバーが使用するポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。 |
$_SERVER['SERVER_SIGNATURE'] | サーバーのバージョンと仮想ホスト名を含む文字列。 |
$_SERVER['PATH_TRANSLATED'] | 現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルートではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。 |
$_SERVER['SCRIPT_NAME'] | 現在のスクリプトへのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。 |
$_SERVER['SCRIPT_URI'] | URIはアクセスするページを指定するために使用されます。たとえば、「/index.html」です。 |
PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。
次の例は、入力フィールドと送信ボタンを備えたフォームを示しています。ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、<form>タグのaction属性に指定したスクリプトファイルにフォームデータが送信されます。この例では、フォームデータを処理するファイルを指定します。別の PHP ファイルでこのデータを処理する場合は、指定したスクリプト ファイル名を変更できます。次に、スーパー グローバル変数 $_REQUEST を使用して、次の形式で入力フィールド データを収集できます。
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">名前: <input type="text" name="fname"><入力タイプ="submit"></form><?php $name = $_REQUEST['fname'] ?></body></html>;
PHP $_POST は、フォーム データを収集するために広く使用されています。HTML フォーム タグでこの属性を指定します: "method="post"。
次の例は、入力フィールドと送信ボタンを備えたフォームを示しています。ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、<form>タグのaction属性に指定したスクリプトファイルにフォームデータが送信されます。この例では、フォームデータを処理するファイルを指定します。別の PHP ファイルでこのデータを処理する場合は、指定したスクリプト ファイル名を変更できます。次に、スーパー グローバル変数 $_POST を使用して、次の形式で入力フィールド データを収集できます。
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">名前: <input type="text" name="fname"><入力タイプ="submit"></form><?php $name = $_POST['fname'] ?></body></html>;
PHP $_GET は、フォーム データを収集するためにも広く使用されています。HTML フォーム タグでこの属性を指定します: "method="get"。
$_GET は、URL で送信されたデータを収集することもできます。
パラメータを含むハイパーリンクされた HTML ページがあると仮定します。
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">$GET をテストする</a></body></html>
ユーザーが「Test $GET」リンクをクリックすると、パラメータ「subject」と「web」が「test_get.php」に送信されます。「test_get.php」ファイルの $_GET 変数を使用してこれを取得できます。データ。
次の例は、「test_get.php」ファイルのコードを示しています。
<html><body><?php echo " . $_GET['subject'] . " を " . $_GET['web'];?></body></html>
ヒント: $_POST と $_GET について詳しく知りたい場合は、PHP フォームの章を参照してください。