PHPでファイルパスからファイル名、ディレクトリを取得する方法

こんにちは、さるまりんです。

PHPの小ネタです。

ファイルパスの文字列から「ファイル名」の部分、ファイルのある「親ディレクトリ」の部分を取得するにはそれぞれbasename関数とdirname関数を使います。

$path変数にファイルのパスを表す文字列を設定し、それぞれの関数を呼び出し結果を表示します。

プログラムはこんな感じです。

$path = "/home/salumarine/some_file.txt";

echo "file name : " . basename($path) . "\n";
echo "directory : " . dirname($path) . "\n";

これを実行すると↓が出力されます。

file name : some_file.txt
directory : /home/salumarine

ファイル名の部分"some_file.txt"とディレクトリの部分の"/home/salumarine"を取得することができていますね。

pathinfo関数というものもあります。こちらだと上のものプラスαの情報が取得できます。

呼び出してprint_rで出力してみます。変数$pathには同じ文字列が設定されています。

print_r(pathinfo($path));

出力はこうなります。

Array
(
    [dirname] => /home/salumarine
    [basename] => some_file.txt
    [extension] => txt
    [filename] => some_file
)

dirnamebasenameの他に、extension = 拡張子、filename = 拡張子を抜いたファイル名も一緒に取得されています。

パス文字列の最後のディレクトリ区切り文字より前がディレクトリ、後がファイル名というロジックも考えられますが、関数でパッと取れるのは便利ですね。

読んでくださってありがとうございます。

それではまた!