PHP
24
どのような問題がありますか?

この記事は最終更新日から1年以上が経過しています。

投稿日

PHPのディレクトリまとめ

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の危険性あり
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
okdyy75

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
新人プログラマ応援 - みんなで新人を育てよう!
~
データに関する記事を書こう!
~
24
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー