特殊変数 (>= 4.1.0)
$_SERVER 変数
スーパーグローバルまたは自動グローバルな変数。
取得できる値のうち、使いそうなものだけリストアップ。
PHP_SELF | 実行しているファイル名。DocumentRootからのPATH |
argv | 引数。コマンドライン or GET。 |
argc | 引数の数。コマンドライン or GET。 |
REQUEST_METHOD | GET , POST, etc |
QUERY_STRING | GETパラメータ |
DOCUMENT_ROOT | そのまま |
HTTP_ACCEPT_CHARSET | ヘッダ |
HTTP_ACCEPT_ENCODING | ヘッダ |
HTTP_ACCEPT_LANGUAGE | ヘッダ |
HTTP_HOST | ヘッダ |
HTTP_REFERER | ヘッダ |
HTTP_USER_AGENT | ヘッダ |
HTTPS | HTTPSでアクセスしてれば 空以外となる |
REMOTE_ADDR | クライアントIP |
REMOTE_HOST | IP逆引き |
REMOTE_PORT | ポート番号 |
SCRIPT_FILENAME | ファイルの‘絶対’パス |
PATH_TRANSLATED | ファイルのパス |
REQUEST_URI | |
PHP_AUTH_DIGEST | Authorizationヘッダの値 |
PHP_AUTH_USER | BASIC/Digest認証のユーザ名? |
PHP_AUTH_PW | BASIC/Digest認証のパスワード? |
AUTH_TYPE | HTTP認証の認証形式 (BASIC or Digest ?) |
$_ENV
スーパーグローバルまたは自動グローバルな変数。
環境変数が入る。
$_COOKIE
スーパーグローバルまたは自動グローバルな変数。
$_GET
スーパーグローバルまたは自動グローバルな変数。
GETパラメータを取得できる。
連想配列で格納されるため、同じパラメータ名が複数渡されると、最後の1つしか取得できない。
foreach($_GET as $key => $value){ echo $key . " => " . $value . "<BR>\n"; }
$_POST
POSTデータを取得できる。
スーパーグローバルまたは自動グローバルな変数。
foreach($_POST as $key => $value){ echo $key . " => " . $value . "<BR>\n"; }
連想配列で格納されるため、同じパラメータ名が複数渡されると、最後の1つしか取得できない。
但し、php://input で取得したPOSTデータを自分でパースすれば、同じ名前でもなんとかなる。
$_FILES
スーパーグローバルまたは自動グローバルな変数。
ファイルアップロード用。
$_REQUEST
$_GET, $_POST, $_COOKIE, $_FILES がまとめて格納される。
スーパーグローバルまたは自動グローバルな変数。
$_SESSION
セッション変数。
スーパーグローバルまたは自動グローバルな変数。
セッション変数の使い方は、PHPでのセッション管理?を参照。
$GLOBALS (>=3.00)
グローバルスコープで定義されている変数が格納された、連想配列。
スーパーグローバルまたは自動グローバルな変数。
$php_errormsg
直近のエラーメッセージ。
エラー発生箇所と同一スコープで、track_error = on にしてある場合に有効。
$HTTP_RAWS_POST_DATA
生POSTデータ。
但し、データ全部が値として入るため、メモリ消費量が大きく、この変数の使用は推奨されない。php://input のほうがよい。
$http_response_header
レスポンスヘッダ。
その他
ページ内で変数を出力する
<?php echo $_SERVER["PHP_SELF"]; ?> <? echo $_SERVER["PHP_SELF"]; ?> <?= $_SERVER["PHP_SELF"]; ?>
2つめと3つめは、short_open_tag が On になっている必要がある。
asp_tags を On にすると、ASP形式の <% %> や <%= %> が使えるようになる。
全てのスクリプトで共通の処理を行う
php.ini の
auto_prepend_file = "/home/naka/www/php/ids.php" auto_append_file =
を使う。上の例のauto_prepend_file に設定してあるのは、PHPIDSを起動するスクリプト。
入出力フィルター
http://www.php.net/manual/ja/wrappers.php.php より
- php://stdin
- php://stdout
- php://stderr
- php://output
- php://input
- php://filter (PHP 5.0.0 以降で使用可能)
- php://memory (PHP 5.1.0 以降で使用可能)
- php://temp (PHP 5.1.0 以降で使用可能)