【PHP8.x】SplFileObject::getFileInfo()メソッドの使い方
getFileInfoメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getFileInfoメソッドは、現在扱っているファイルに関する詳細な情報を取得するメソッドです。このメソッドは、PHPでファイルやディレクトリをオブジェクトとして扱うことを可能にするSplFileObjectクラスに属しています。
getFileInfoメソッドを呼び出すと、現在開いているファイルや操作対象のディレクトリに関する属性情報をまとめたSplFileInfoクラスのオブジェクトを返します。このSplFileInfoオブジェクトを通じて、ファイルサイズ、最終更新日時、パーミッション、ファイルの種類(例えば、通常のファイル、ディレクトリ、シンボリックリンクなど)といった、多岐にわたるファイル情報をプログラムで簡単に取得できます。
この機能は、単にファイルの内容を読み書きするだけでなく、ファイルそのものの特性や状態を調べて、条件に応じた処理を実行したい場合に非常に有用です。例えば、特定のサイズのファイルだけを処理する、更新日時が最も新しいファイルを選択するといった、ファイル操作における高度な制御を実現するために活用されます。ファイルシステムの情報を効果的に利用するための重要なメソッドです。
構文(syntax)
1<?php 2// 一時ファイルを作成し、SplFileObjectインスタンスを生成します。 3$filePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'example.txt'; 4file_put_contents($filePath, 'このファイルはテスト用です。'); 5 6// SplFileObjectのインスタンスを作成します。 7$fileObject = new SplFileObject($filePath, 'r'); 8 9// getFileInfo() メソッドを呼び出し、SplFileInfoオブジェクトを取得します。 10// 引数を省略した場合、SplFileInfo::class のインスタンスが返されます。 11// オプションで、SplFileInfoを継承したカスタムクラス名を引数に指定することも可能です。 12// 例: $fileInfo = $fileObject->getFileInfo(MyCustomFileInfo::class); 13$fileInfo = $fileObject->getFileInfo(); 14 15// 取得したSplFileInfoオブジェクトから、ファイル名などの情報を取得できます。 16echo $fileInfo->getFilename() . PHP_EOL; // 例: example.txt 17 18// 使用した一時ファイルを削除します。 19unlink($filePath); 20?>
引数(parameters)
string $class = null
- string $class = null: ファイル情報取得に使用するクラス名を指定します。指定しない場合は
SplFileInfoクラスが使用されます。
戻り値(return)
SplFileInfo
このメソッドは、現在のSplFileObjectオブジェクトに対応するファイルの情報を持つSplFileInfoオブジェクトを返します。SplFileInfoオブジェクトを使用すると、ファイル名、サイズ、最終更新日時などのファイルに関する詳細情報を取得できます。