ホームページ  >  記事  >  バックエンド開発  >  PHP_006 スーパーグローバル変数

PHP_006 スーパーグローバル変数

WBOY
WBOYオリジナル
2016-06-23 13:39:40903ブラウズ

スーパー グローバル変数

いくつかのスーパー グローバル変数 (スーパーグローバル) が PHP で事前定義されており、スクリプトのスコープ全体で使用できることを意味します。 特別な指示なしで関数やクラスで使用できます。

PHP スーパーグローバル変数リスト:

$GLOBALS

$_SERVER

$_REQUEST

$_GET

$_FILES

$_ENV

$_ CO OKIE

$_SESSION

$GLOBAL

$GLOBAL は、PHP スクリプトのスコープ全体でアクセスできる PHP のスーパーグローバル変数グループです。

$GLOBAL は、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。

次の例では、スーパー グローバル変数 $GLOBAL の使用方法を紹介します:

<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>

上記の例では、z は $GLOBALS 配列内のスーパー グローバル変数であり、関数の外部からもアクセスできます。

$_SERVER

$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列内の項目は 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 変数のすべての重要な要素:

要素/コード 説明
$_SERVER['PHP_SELF'] ドキュメントルートに関連する、現在実行中のスクリプトのファイル名。たとえば、http://example.com/test.php/foo.bar のスクリプトで $_SERVER['PHP_SELF'] を使用すると、/test.php/foo.bar になります。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。 PHP バージョン 4.3.0 以降、PHP がコマンド ライン モードで実行されている場合、この変数にはスクリプト名が含まれます。この変数は以前のバージョンでは使用できません。
$_SERVER['GATEWAY_INTERFACE'] サーバーによって使用される CGI 仕様のバージョン (例: "CGI/1.1")。
$_SERVER['SERVER_ADDR'] スクリプトが現在実行されているサーバーの IP アドレス。
$_SERVER['SERVER_NAME'] スクリプトが現在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。(例: www.w3cschool.cc)
$_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 パラメータを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。(例:someone@w3cschool.cc)
$_SERVER['SERVER_PORT'] Web サーバーによって使用されるポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。
$_SERVER['SERVER_SIGNATURE'] サーバーのバージョンと仮想ホスト名を含む文字列。
$_SERVER['PATH_TRANSLATED'] 現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。
$_SERVER['SCRIPT_NAME'] 現在のスクリプトへのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。
$_SERVER['SCRIPT_URI'] URI は、アクセスするページを指定するために使用されます。たとえば、「/index.html」です。

 

$_REQUEST

PHP $_REQUEST 用于收集HTML表单提交的数据。

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至ff9c23ada1bcecdd1a0fb5d5a0f18437标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:

<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>

$_POST

PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。

以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至ff9c23ada1bcecdd1a0fb5d5a0f18437标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:

<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>

$_GET

PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

$_GET 也可以收集URL中发送的数据。

假定我们有一个包含参数的超链接HTML页面:

<html><body><a href="test_get.php?subject=PHP&web=w3cschool.cc">Test $GET</a></body></html>

当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。

以下实例显示了 "test_get.php" 文件的代码:

<html><body><?php echo "Study " . $_GET['subject'] . " at " . $_GET['web'];?></body></html>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP 用の AJAX次の記事:PHP 用の AJAX