関数の概要
PHPの dirname 関数は、ファイルパスから親ディレクトリのパスを取得するために使われます。指定したパスの最後の部分を取り除き、ディレクトリ部分だけを返すため、ファイル操作やパスの解析時に非常に便利な関数です。
パラメータの説明
path(必須): ディレクトリを取得したいファイルパスを文字列で指定します。levels(省略可能): 親ディレクトリの階層を指定します。デフォルトは1で、一つ上のディレクトリを返します。2以上を指定すると、更に上の階層まで遡ったパスが返されます。
戻り値
指定したパスの親ディレクトリのパスを文字列で返します。ルートディレクトリに達すると、それ以上遡ることはできません。
使用例
基本的な使い方
<?php
$path = '/var/www/html/index.php';
echo dirname($path); // /var/www/html
?>
ファイルのフルパスから、親ディレクトリのパス「/var/www/html」が取得できます。
複数階層上のディレクトリを取得
<?php
$path = '/var/www/html/project/file.txt';
echo dirname($path, 2); // /var/www
?>
levelsパラメータに2を指定すると、二つ上のディレクトリ「/var/www」までのパスを取得できます。
相対パスでも使用可能
<?php
$path = 'images/photo.jpg';
echo dirname($path); // images
?>
相対パスの場合も同様に、ファイル名を除いたディレクトリ部分を取得できます。
関連する関数
basename— ファイル名を取得する際に使う関数realpath— 実際のファイルシステムの絶対パスを取得する関数pathinfo— パスの情報を配列で取得する関数
まとめ
dirname はPHPでファイルパスからディレクトリ名だけを簡単に取得できる便利な関数です。親ディレクトリのパスを取得する処理はファイル操作でよく使われるため、覚えておくと効率的なプログラム作成に役立ちます。
パラメータで階層数も指定でき、相対パスでも使えるため汎用性が高いのも特徴です。
