PHPスーパーグローバル変數(shù)
スーパー グローバル変數(shù)は、PHP 4.1.0 以降で有効になりました。これらは、PHP システムに付屬する変數(shù)であり、スクリプトのスコープ全體で使用できます。
PHP スーパー グローバル変數(shù)
いくつかのスーパー グローバル変數(shù) (スーパーグローバル) が PHP で事前定義されています。つまり、それらはスクリプトのスコープ全體で使用可能です。 特別な指示なしで関數(shù)やクラスで使用できます。
PHP スーパーグローバル変數(shù)リスト:
? $GLOBALS は現(xiàn)在のスクリプト內(nèi)のすべてのグローバル変數(shù)を保存します。KEY は変數(shù)名、VALUE は変數(shù)値です
? $_SERVER 現(xiàn)在の Web サーバー変數(shù)配列
? $_REQUEST $_GET、$_POST、$_COOKIE、$_SESSION のすべてのリクエストの配列を送信フォームに保存します
? $_POST は、POST メソッドで送信されたフォームにデータを保存します
? $_GET は、 GET メソッド データ
? $_FILES ファイルをアップロードすることで現(xiàn)在のスクリプトに送信されたデータを保存します
? $_ENV 現(xiàn)在の Web 環(huán)境変數(shù)を保存します
? $_COOKIE ユーザーのブラウザ Cookie に保存されている変數(shù)配列を取得または設(shè)定します
? $_SESSION 現(xiàn)在のスクリプト セッション変數(shù)の配列を保存します
この章では、一般的に使用されるいくつかのスーパー グローバル変數(shù)について説明し、殘りの変數(shù)については次の數(shù)章で紹介します。
PHP $GLOBALS
$GLOBALS は、PHP スクリプトのスコープ全體でアクセスできる PHP のスーパーグローバル変數(shù)グループです。
$GLOBALS は、すべての変數(shù)を含むグローバル結(jié)合配列です。変數(shù)の名前は配列のキーです。
次の例では、スーパーグローバル変數(shù) $GLOBALS の使用方法を紹介します:
例
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
実行例 ?
上記の例では、z は $GLOBALS 配列內(nèi)のスーパーグローバル変數(shù)であり、外部からアクセスすることもできます関數(shù)。
PHP $_SERVER
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。 この配列內(nèi)の項(xiàng)目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
次の例は、$_SERVER の要素の使用方法を示しています:
例
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
実行例?
次の表は、$_SERVER 変數(shù)のすべての重要な要素を示しています:
要素/コード説明
$_SERVER['PHP_SELF'] 現(xiàn)在実行中のスクリプトのファイル名はドキュメントルートに関連付けられています。たとえば、http://example.com/test.php/foo.bar のスクリプトで $_SERVER['PHP_SELF'] を使用すると、/test.php/foo.bar になります。 __FILE__ 定數(shù)には、現(xiàn)在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。 PHP 4.3.0 バージョン以降、PHP がコマンド ライン モードで実行される場合、この変數(shù)にはスクリプト名が含まれます。この変數(shù)は以前のバージョンでは使用できません。
$_SERVER['GATEWAY_INTERFACE'] サーバーで使用される CGI 仕様のバージョン (例: "CGI/1.1")。
$_SERVER['SERVER_ADDR'] スクリプトが現(xiàn)在実行されているサーバーの IP アドレス。
$_SERVER['SERVER_NAME'] スクリプトが現(xiàn)在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設(shè)定された値によって決まります。 (例: _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'] 現(xiàn)在のリクエストヘッダーに Accept: 項(xiàng)目が存在する場合、その內(nèi)容。
$_SERVER['HTTP_ACCEPT_CHARSET'] 現(xiàn)在のリクエストヘッダー內(nèi)の Accept-Charset: 項(xiàng)目の內(nèi)容 (存在する場合)。例: 「iso-8859-1,*,utf-8」。
$_SERVER['HTTP_HOST']現(xiàn)在のリクエストヘッダー (存在する場合)。
$_SERVER['HTTP_REFERER']ユーザー エージェントを現(xiàn)在のページの前のページのアドレス (存在する場合) に誘導(dǎo)します。ユーザーエージェント設(shè)定によって決定されます。すべてのユーザーエージェントがこの項(xiàng)目を設(shè)定するわけではなく、一部のユーザーエージェントは HTTP_REFERER を変更する機(jī)能も提供します。要するに、その値は信頼できません。 )httpsプロトコルを介してスクリプトにアクセスされる場合、$ _server ['https']は空でない値に設(shè)定されます。 Er $ _Server ['remote_addr'] 現(xiàn)在のページのユーザーの IP アドレスを參照します。 Er $ _Server ['remote_host'] 現(xiàn)在のページでユーザーのホスト名を參照します。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。
$ _server ['remote_port']彼女自身が彼女自身に彼女自身が彼女自身に彼女自身が彼女を彼女にするために彼女の彼女の彼女のすべてを彼女に彼女に彼女に彼女自身をする。
$_SERVER['SCRIPT_FILENAME'] 現(xiàn)在実行中のスクリプトの絶対パス。
$_SERVER['SERVER_ADMIN'] この値は、Apache サーバー構(gòu)成ファイルの SERVER_ADMIN パラメーターを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。 (例:someone@runoob.com)
$_SERVER['SERVER_PORT'] Web サーバーが使用するポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設(shè)定した HTTP ポートです。
$_SERVER['SERVER_SIGNATURE'] サーバーのバージョンと仮想ホスト名を含む文字列。
$_SERVER['PATH_TRANSLATED'] 現(xiàn)在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結(jié)果です。
$_SERVER['SCRIPT_NAME'] 現(xiàn)在のスクリプトのパスが含まれます。これは、ページがそれ自體を指す必要がある場合に便利です。 __FILE__ 定數(shù)には、現(xiàn)在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。
$ _Server ['Script_uri']にアクセスします。たとえば、「/index.html」です。
PHP $_REQUEST
PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。
次の例は、入力フィールドと送信ボタンのあるフォームを示しています。 ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、<form>タグのaction屬性に指定されたスクリプトファイルにフォームデータが送信されます。 この例では、フォーム データを処理するファイルを指定します。別の PHP ファイルでこのデータを処理する場合は、指定したスクリプト ファイル名を変更できます。 次に、スーパー グローバル変數(shù) $_REQUEST を使用して、次の形式で入力フィールド データを収集できます。
Instance
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
実行例?
$_SERVER['PHP_SELF'] は開発中によく使用され、通常は次の目的で使用されます。參照 現(xiàn)在の Web ページのアドレス。システムによって自動的に生成されるグローバル変數(shù)です。
PHP $_POST
PHP $_POST は、HTML フォーム タグでこの屬性を指定します: "method="post"。
次の例は、入力フィールドを示しています。ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、 <form> タグの action 屬性に指定されたスクリプトファイルにフォームデータが送信されます。フォーム データを処理するファイルを指定します。他の PHP ファイルでデータを処理したい場合は、スーパー グローバル変數(shù) $_POST を使用してフォームの入力フィールド データを収集できます。 :
インスタンス
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
インスタンスの実行?
PHP $_GET
PHP $_GET は、フォーム データの収集にも広く使用されています。HTML フォーム タグでこの屬性を指定します: "method="get"。
$_GET は、URL で送信されたデータも収集できます。
次のパラメータがあるとします。ハイパーリンク HTML ページ:
<html> <body> <a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a> </body> </html>
ユーザーがリンク「Test $GET」をクリックすると、パラメーター「subject」と「web」が「test_get.php」に送信され、「test_get.php」で $_GET 変數(shù)を使用できます。 php" ファイルを使用してこのデータを取得します。
次の例は、"test_get.php" ファイルのコードを示しています:
例
<html> <body> <?php echo "Study" . $_GET['subject'] . "at" . $_GET['web']; ?> </body> </html>
実行例?
ヒント: $_POST と $ について詳しく知りたい場合_GET、PHP フォーム セクションにアクセスしてください