【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 オブジェクトを返します。このオブジェクトを通して、パス名やファイル名などの詳細情報を取得できます。