PHPのパス、ファイルの取得方法の調査。
$_ENV
、$_SERVER
から取得できるディレクトリパス。
「$_SERVER
」はWebサーバにより生成されるサーバ情報および実行時の環境情報。
「$_ENV
」はサーバ側で設定されている環境変数。
dir.php
var_dump($_SERVER['HTTP_HOST']);
var_dump($_SERVER['SERVER_NAME']);
var_dump($_SERVER['DOCUMENT_ROOT']);
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_SERVER['SCRIPT_NAME']);
var_dump($_SERVER['PHP_SELF']);
var_dump($_SERVER['REQUEST_URI']);
var_dump(__FILE__);
var_dump(__DIR__);
var_dump(__LINE__);
var_dump(dirname(__FILE__));
var_dump(dirname(__DIR__));
var_dump(dirname($_SERVER['SCRIPT_NAME']));
var_dump(basename(__FILE__));
var_dump(basename(__DIR__));
var_dump(basename($_SERVER['REQUEST_URI']));
ディレクトリパス取得一覧
ドキュメントルート:/var/www/html
URL:http://example.localhost/dir1/dir2/phpdir.php?test=aaa
にアクセスした場合
変数名 | 例 | 説明 | |
---|---|---|---|
$_SERVER |
$_SERVER['HTTP_HOST'] |
example.localhost | リクエストヘッダに含まれるHOST XSSの危険性あり |
$_SERVER['SERVER_NAME'] |
example.localhost | Apacheの設定ファイル等に 記述されているSERVER_NAME |
|
$_SERVER['DOCUMENT_ROOT'] |
/var/www/html | ドキュメントルートのフルパス | |
$_SERVER['SCRIPT_FILENAME'] |
/var/www/html/dir1/dir2/dir.php | フルパスとファイル名 | |
$_SERVER['SCRIPT_NAME'] |
/dir1/dir2/dir.php | 実行されたPHPのパスとファイル名 | |
$_SERVER['PHP_SELF'] |
/dir1/dir2/dir.php | リクエストされたパスとファイル名 XSSの危険性あり |
|
$_SERVER['REQUEST_URI'] |
/dir1/dir2/dir.php?test=aaa | リクエストされた パスとファイル名とクエリ XSSの危険性あり |
|
__XXXX__ |
__FILE__ |
\var\www\html\dir1\dir2\dir.php | 実行されたPHPのフルパス |
__DIR__ |
\var\www\html\dir1\dir2 | 実行されたPHPのディレクトリ名 「 dirname(__FILE__) 」 と同じ |
|
__LINE__ |
12 | 実行されたPHPのファイル行番号 | |
dirname() |
dirname(__FILE__) |
\var\www\html\dir1\dir2 | 実行されたPHPのディレクトリまでの フルパス |
dirname(__DIR__) |
\var\www\html\dir1 | 「実行されたPHPのディレクトリ」 のディレクトリまでのフルパス |
|
dirname($_SERVER['SCRIPT_NAME']) |
/dir1/dir2 | 実行されたPHPのディレクトリのパス | |
dirname($_SERVER['REQUEST_URI']) |
/dir1/dir2 | リクエストされたPHPのパス XSSの危険性あり |
|
basename() |
basename(__FILE__) |
dir.php | 実行されたPHPのファイル名 |
basename(__DIR__) |
dir2 | 「実行されたPHPのディレクトリ」 のディレクトリ名 |
|
basename($_SERVER['SCRIPT_NAME']) |
dir.php | 実行されたPHPのファイル名 | |
basename($_SERVER['REQUEST_URI']) |
dir.php?test=aaa | リクエストされたファイル名とクエリ XSSの危険性あり |