PHPの組み込み変数の値
PHPには、下記のような定義済み変数が各種用意されており、様々な情報にアクセスできる。
------------------------------------------------------------------------------
- スーパーグローバル — すべてのスコープで使用できる組み込みの変数
- $GLOBALS — グローバルスコープで使用可能なすべての変数への参照
- $_SERVER — サーバー情報および実行時の環境情報
- $_GET — HTTP GET 変数
- $_POST — HTTP POST 変数
- $_FILES — HTTP ファイルアップロード変数
- $_REQUEST — HTTP リクエスト変数
- $_SESSION — セッション変数
- $_ENV — 環境変数
- $_COOKIE — HTTP クッキー
- $php_errormsg — 直近のエラーメッセージ
- $HTTP_RAW_POST_DATA — 生の POST データ
- $http_response_header — HTTP レスポンスヘッダ
- $argc — スクリプトに渡された引数の数
- $argv — スクリプトに渡された引数の配列
------------------------------------------------------------------------------
次のphpプログラムを作成し、実際にこれらの変数に格納された値を列挙してみる。($_SERVERを列挙した例)
■$_SERVER変数の一覧 (CGIの仕様に沿った環境変数値と同じ)
・列挙に使ったphpソース
<html>
<body>
<?php
foreach ($GLOBALS as $key => $v) {
echo $key . ' => ' . $v . "<BR>";
}
?>
</body>
</html>
・列挙した結果
MIBDIRS => F:/Program/xampp/php/extras/mibs
OPENSSL_CONF => F:/Program/xampp/apache/bin/openssl.cnf
PHPRC => \xampp\php
TMP => \xampp\tmp
HTTP_HOST => 127.0.0.1
HTTP_ACCEPT_LANGUAGE => ja,en-US;q=0.7,en;q=0.3
HTTP_ACCEPT_ENCODING => gzip, deflate
CONTENT_TYPE => application/x-www-form-urlencoded
CONTENT_LENGTH => 7
HTTP_DNT => 1
HTTP_CONNECTION => keep-alive
HTTP_UPGRADE_INSECURE_REQUESTS => 1
HTTP_CACHE_CONTROL => max-age=0
SystemRoot => C:\WINDOWS
COMSPEC => C:\WINDOWS\system32\cmd.exe
WINDIR => C:\WINDOWS
SERVER_SIGNATURE =>
SERVER_NAME => 127.0.0.1
SERVER_ADDR => 127.0.0.1
SERVER_PORT => 80
REMOTE_ADDR => 127.0.0.1
DOCUMENT_ROOT => F:/Program/xampp/htdocs
REQUEST_SCHEME => http
CONTEXT_PREFIX =>
CONTEXT_DOCUMENT_ROOT => F:/Program/xampp/htdocs
SERVER_ADMIN => postmaster@localhost
SCRIPT_FILENAME => F:/Program/xampp/htdocs/test/test.php
REMOTE_PORT => 63925
SERVER_PROTOCOL => HTTP/1.1
REQUEST_METHOD => POST
QUERY_STRING =>
REQUEST_URI => /test/test.php
SCRIPT_NAME => /test/test.php
REQUEST_TIME_FLOAT => 1551663337.763
REQUEST_TIME => 1551663337
■$_GET変数 と $_POST変数 (QUERY_STRINGの取得)
・使用する index.html
<html>
<body>
<?php
echo "■GET<br>\n";
foreach ($_GET as $key => $v) {
echo "・$key=>$v<br>\n";
}
echo "■POST<br>\n";
foreach ($_POST as $key => $v) {
echo "・$key=>$v<br>\n";
}
?>
</body>
</html>
・実行
index.htmlを表示し、フォームに "val2"と入力し、送信ボタンを押す。
・実行結果
$_GET変数は、Request LineのQuery String部分が取得できる。
$_POST変数は、Request Bodyの値が取得できる。
■$_FILES変数 (ファイルのアップロード)
・使用するindex.html
<html>
<body>
<?php
$f = $_FILES['userfile'];
foreach ($f as $key => $v) {
echo "・$key=>$v<br>\n";
}
?>
</body>
</html>
・実行
参照ボタンを押して、ファイルチューザーが表示されるので、file.txt というファイルを選択したところ。
・実行結果
---------------------------------------
■ITとことんのトップページ
┗■PHPのトップページ
┗■本ページ