Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PATHINFO_DIRNAME定数の使い方

PATHINFO_DIRNAME定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

PATHINFO_DIRNAME定数は、ファイルパス情報の一部を表す定数です。

この定数は、PHPのファイルシステム関数、特にpathinfo()関数と組み合わせて使用されることを想定しています。pathinfo()関数は、与えられたファイルパスを解析し、その構成要素(ディレクトリ名、ファイル名、拡張子など)を抽出するために用いられます。

PATHINFO_DIRNAME定数をpathinfo()関数の第2引数(オプション)として指定することで、特定のパス文字列からファイル名と拡張子を除いた、純粋なディレクトリパス部分のみを取得することができます。例えば、「/usr/local/var/www/html/index.php」というファイルパスに対してこの定数を使用すると、「/usr/local/var/www/html」という文字列が結果として返されます。

この機能は、システム開発において、ファイルの格納場所を特定したり、同一ディレクトリ内の別のファイルにアクセスする必要がある場合に非常に有用です。ファイルパス全体から特定の情報を効率的に抽出できるため、ディレクトリ構造に基づいた処理を記述する際にコードの可読性とメンテナンス性を向上させます。ファイル管理やパス操作を行う多くの場面で活用される基本的な定数の一つです。

構文(syntax)

1<?php
2$file_path = '/path/to/your/file.txt';
3$directory_name = pathinfo($file_path, PATHINFO_DIRNAME);
4?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

PATHINFO_DIRNAME は、ファイルパスからディレクトリ名を取得する際に使用される定数です。この定数を pathinfo() 関数に渡すと、整数の値が返されます。

サンプルコード

PHP pathinfo PATHINFO_DIRNAMEでディレクトリ名を取得する

1<?php
2
3/**
4 * ファイルパスからディレクトリ名部分を抽出するデモンストレーション関数。
5 * PATHINFO_DIRNAME 定数の使い方を示します。
6 *
7 * PATHINFO_DIRNAME は、pathinfo() 関数にパスのディレクトリ部分のみを
8 * 返すように指示する組み込み定数です。
9 *
10 * @param string $path 解析するファイルパス
11 * @return void
12 */
13function demonstratePathinfoDirname(string $path): void
14{
15    // pathinfo() 関数と PATHINFO_DIRNAME 定数を使用して、
16    // 指定されたパスからディレクトリ名部分を抽出します。
17    $directoryName = pathinfo($path, PATHINFO_DIRNAME);
18
19    // 抽出したディレクトリ名を出力します
20    echo "元のファイルパス: " . $path . PHP_EOL;
21    echo "抽出されたディレクトリ名: " . $directoryName . PHP_EOL;
22    echo "---" . PHP_EOL; // 出力を見やすくするための区切り線
23}
24
25// 様々なファイルパスで関数を呼び出し、動作を確認します
26
27// 典型的なファイルパス
28demonstratePathinfoDirname('/var/www/html/index.php');
29
30// ルートディレクトリ直下のファイル
31demonstratePathinfoDirname('/document.txt');
32
33// ディレクトリのみのパス (末尾にスラッシュあり)
34demonstratePathinfoDirname('/usr/local/bin/');
35
36// ディレクトリのみのパス (末尾にスラッシュなし)
37demonstratePathinfoDirname('/home/user');
38
39// カレントディレクトリのファイル
40demonstratePathinfoDirname('config.ini');
41
42?>

このPHPコードは、ファイルパスからディレクトリ名部分を抽出する方法を実演しています。PHPの標準関数であるpathinfo()は、ファイルパスに関する様々な情報を取得するために使用されます。コード内のdemonstratePathinfoDirname関数は、解析したいファイルパスを文字列として引数に受け取ります。

この関数内でpathinfo()関数が呼び出されており、その第二引数にはPATHINFO_DIRNAMEという組み込み定数が指定されています。PATHINFO_DIRNAME定数は、pathinfo()関数に対して、与えられたファイルパスの中からディレクトリ名に相当する部分のみを抽出して返すように指示する役割を持っています。

例えば、/var/www/html/index.phpというパスを与えると、pathinfo()関数は/var/www/htmlという文字列を返します。また、config.iniのようにファイル名のみが指定された場合は、現在のディレクトリを示す.が返されます。pathinfo()関数の戻り値は、この定数が指定された場合、抽出されたディレクトリ名を表す文字列となります。この機能は、ファイル操作やパスの加工を行う際によく利用され、ファイルシステムに関する情報を効率的に扱うために役立ちます。

PATHINFO_DIRNAMEは、pathinfo()関数に渡すことで、ファイルパスからディレクトリ名部分だけを抽出する際に使われる定数です。この定数自体は整数値ですが、pathinfo()関数を呼び出した結果は、抽出されたディレクトリ名を表す文字列で返されますので、混同しないようご注意ください。

特に、末尾にスラッシュのあるディレクトリパス(例: /usr/local/bin/)の場合でも、戻り値は末尾のスラッシュが取り除かれた形(/usr/local/bin)となります。また、ファイル名のみのパス(例: config.ini)に対しては、カレントディレクトリを示す . が返される点に注意が必要です。ルートディレクトリ直下のファイル(例: /document.txt)の場合は、ルートディレクトリを表す / が返されます。これらの挙動を正しく理解し、ご自身の環境や想定されるパスで動作を確認することをおすすめします。

関連コンテンツ