実行スクリプトの上位ディレクトリの絶対パスを取得

ちょっと悩んだので忘れないようにメモ。

__DIR__定数 と dirname()関数を用います。

__DIR__定数

公式ドキュメント

__DIR__で実行スクリプトの絶対パスを取得します。

dirname()関数

公式ドキュメント

dirname ( string $path [, int $levels = 1 ] ) : string

第一引数に与えたパスの親ディレクトリのパスを返します。

第二引数は、どれだけ遡るかです。

スクリプト

<?php
$dir = __dir__;           // スクリプトの絶対パス
$dir = dirname($dir, 2);  // 二階層上のディレクトリの絶対パス
echo $dir . "\n";
?>

実行結果

$ cd /home/katsuya
$ ls -l
-rw-r--r--@  1 katsuya staff      165  2  3 12:31 test_dirname.php
$ php test_dirname.php 
/

二階層上のディレクトリである “/” が返されています。