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

【PHP8.x】getPathInfoメソッドの使い方

getPathInfoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getPathInfoメソッドは、現在のファイルシステム要素(ファイルやディレクトリ)に関する詳細な情報を取得するメソッドです。このメソッドは、PHPの標準的な機能であるSplFileInfoクラスを拡張し、ディレクトリを再帰的に探索するためのRecursiveDirectoryIteratorクラスに属しています。RecursiveDirectoryIteratorがイテレート中に指し示す、その時点でのファイルまたはディレクトリについて、そのパス、ファイル名、ファイルの種類、最終更新日時などのメタデータ情報をカプセル化したSplFileInfoオブジェクトとして提供します。

具体的には、getPathInfoメソッドを呼び出すと、現在のファイルシステム要素を表すSplFileInfoオブジェクトが返されます。この返されたSplFileInfoオブジェクトに対して、さらにgetFilename()メソッドでファイル名のみを取得したり、getExtension()メソッドでファイルの拡張子を抽出したり、isDir()メソッドでそれがディレクトリであるかを確認したりするなど、様々な追加の情報取得や判定が行えます。これにより、ディレクトリ内のファイルを種類別に処理したい場合や、特定の条件に合致するファイルを効率的に探し出したい場合に、柔軟かつ強力な手段を提供します。システムエンジニアを目指す方にとって、ファイルシステムの操作や管理を行う上で、このメソッドは非常に基本的ながらも重要な役割を果たします。

構文(syntax)

1<?php
2
3// 走査したいディレクトリのパスを指定してRecursiveDirectoryIteratorを作成します。
4// 例: 現在のスクリプトがあるディレクトリ
5$iterator = new RecursiveDirectoryIterator(__DIR__);
6
7// ディレクトリ内の各エントリ(ファイルやサブディレクトリ)を反復処理します。
8foreach ($iterator as $fileSystemEntry) {
9    // 現在のエントリ($fileSystemEntry)に対して getPathInfo() メソッドを呼び出します。
10    // このメソッドは、そのエントリに関する詳細情報を持つ SplFileInfo オブジェクトを返します。
11    $fileInfo = $fileSystemEntry->getPathInfo();
12
13    // 返された SplFileInfo オブジェクトから、ファイル名などの情報を取得できます。
14    echo $fileInfo->getFilename() . "\n";
15}
16
17?>

引数(parameters)

?string $class = null

  • ?string $class = null: 取得するパス情報をクラス名でフィルタリングするための文字列。指定しない場合はすべてのパス情報が取得されます。

戻り値(return)

SplFileInfo

RecursiveDirectoryIterator::getPathInfo() は、現在のディレクトリのパス情報を表す SplFileInfo オブジェクトを返します。このオブジェクトを通して、パス名やファイル名などの詳細情報を取得できます。