LoginSignup
28
31

More than 3 years have passed since last update.

PHPのディレクトリまとめ

Posted at

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の危険性あり
28
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
31