
【PHP】現在実行中ファイルのひとつ上の階層ディレクトリを取得する方法
2017/12/21
PHPでひとつ上の階層のディレクトリ名を取得した際に色々と試したので、忘備録としてポストします。
PHPでパス、ディレクトリ名、スクリプト名などを取得する
前提
[php]
/var/www/toogie-dev/public_html/script/index.php
[/php]
という絶対パスに設置しているファイルを実行した際のパス、ディレクトリ名を取得。
ドキュメントルート(htmlファイル等を設置するのは「public_html」)
CakePHPの pr(); 同様に、以下のデバッグ関数を定義しています。
[php]
/**
* デバッグ用関数
*
*/
function pr($arg) {
print '<pre>'."\n";
print_r($arg);
print '</pre>'."\n";
}
[/php]
取得スクリプト
[php]
// (1)現在のファイルまでの絶対パス
pr(__FILE__);
// (2)現在のディレクトリまでのパス
pr(dirname(__FILE__));
// (3)現在のスクリプト名
pr(basename(__FILE__));
// (4)指定した拡張子(.php)を取り除いたスクリプト名
pr(basename(__FILE__, '.php'));
// (5)現在のディレクトリ名
pr(basename(realpath("")));
// (6)1階層上のpath取得
pr(realpath("../"));
// (7)1階層上のディレクトリ名
pr(basename(realpath("../")));
[/php]
(5)の realpath() ですが、引数を指定しないとカレントディレクトリを指定してものとみなす、とのこと。
取得結果
[php]
// 結果(1)
/var/www/toogie-dev/public_html/script/index.php
// 結果(2)
/var/www/toogie-dev/public_html/script
// 結果(3)
index.php
// 結果(4)
index
// 結果(5)
script
// 結果(6)
/var/www/toogie-dev/public_html
// 結果(7)
public_html
[/php]