この記事はmiriwoお一人様 Advent Calendar 2022の22日目の記事です
概要
- PHPの組み込み関数を使ってファイルパスから、ファイル名を除いたパスを取得する方法をまとめる。
方法
-
組み込み関数の
dirname()
を使う。 -
dirname()
は下記のように使う。dirname(ファイルパス, 階層指定[オプション])
-
例えば
foo/bar/hoge/piyo/test.csv
というファイル名込のパス情報があったとする。これのファイル名を除いたパスを取得したい場合下記の様に記載し実行する。$fullPath = 'foo/bar/hoge/piyo/test.csv'; echo dirname($fullPath); // foo/bar/hoge/piyoが出力される
-
階層指定を行うことでパスのどの階層までを取得するかを設定する事ができる。階数はintで設定する。階数は「カレントディレクトリから何階層上までを取得するか」を設定する。
-
今回でいうとカレントディレクトリが「test.csv」ということになるので、第二引数に1を設定したら「test.csv」 から1階層上のパスを出すので指定しなかった場合と同じで
foo/bar/hoge/piyo
が出力される。第二引数に2を設定したら「test.csv」 から2階層上のパスを出すのでfoo/bar/hoge
が出力される。例を下記に記載する。$fullPath = 'foo/bar/hoge/piyo/test.csv'; echo dirname($fullPath); // foo/bar/hoge/piyoが出力される echo dirname($fullPath, 1); // foo/bar/hoge/piyoが出力される echo dirname($fullPath, 2); // foo/bar/hogeが出力される echo dirname($fullPath, 3); // foo/barが出力される echo dirname($fullPath, 4); // fooが出力される
参考文献