dirname

関数の概要

PHPの dirname 関数は、ファイルパスからディレクトリのパス部分を取得するための関数です。ファイルパスの階層構造を解析し、指定したパスの親ディレクトリのパスを返します。パス操作やファイル管理を行う際に非常に役立つ関数です。

パラメータの説明

  • path(必須): ディレクトリ名を取得したい文字列のパス。絶対パス・相対パスの両方が指定可能です。
  • levels(省略可能): 返したい親ディレクトリの階層数を整数で指定します。デフォルトは 1 で、1つ上のディレクトリを取得します。

戻り値

指定したパスのディレクトリ部分の文字列を返します。levels パラメータを使うと、複数階層上のディレクトリ名を取得することもできます。パスにディレクトリが存在しない場合などは、ドット1つ(.)が返されることがあります。

使用例

基本的な使い方

$path = '/var/www/html/index.php';
echo dirname($path); // 出力: /var/www/html

この例では、ファイルパス /var/www/html/index.php の親ディレクトリである /var/www/html が返されます。

階層を指定して取得する

$path = '/var/www/html/index.php';
echo dirname($path, 2); // 出力: /var/www
echo dirname($path, 3); // 出力: /var

levels パラメータを使うと、1つ上のディレクトリだけでなく2つ、3つ上のディレクトリもまとめて取得できます。

相対パスでも使用可能

$path = 'docs/manual/readme.txt';
echo dirname($path); // 出力: docs/manual

相対パスを指定しても機能し、ファイルの親フォルダパスを取り出せます。

ROOTディレクトリの場合

$path = '/index.php';
echo dirname($path); // 出力: /

ルート直下のファイルの場合、親ディレクトリはルート(スラッシュ)が返されます。

関連する関数

  • basename(): パスからファイル名や最終部分だけを取得
  • realpath(): 相対パスを絶対パスに変換
  • pathinfo(): ファイルパスのディレクトリ名、ファイル名、拡張子を配列形式で取得

まとめ

dirname 関数は、指定したパスから手軽に親ディレクトリ名を取得できる便利な関数です。ファイル操作やディレクトリ構造の解析に役立ち、特に levels パラメータを使うことで複数階層上のディレクトリも簡単に取得可能です。相対パス・絶対パスともに使用でき、PHPでパス操作を行う際は必須の関数といえます。