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

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

作成日: 更新日:

基本的な使い方

getExtensionメソッドは、RecursiveDirectoryIteratorクラスのインスタンスが現在指し示しているファイルやディレクトリの拡張子を取得するメソッドです。

RecursiveDirectoryIteratorは、指定されたディレクトリとその配下のすべてのサブディレクトリを順番に走査し、ファイルやディレクトリの情報を効率的に取得するための強力なツールです。このメソッドは、その走査中に現在処理対象となっている要素がファイルである場合に、そのファイル名から拡張子の部分を抽出して文字列として返します。

例えば、「report.pdf」というファイルに対してこのメソッドを呼び出すと、「pdf」という文字列が戻り値として得られます。また、「photo.jpeg」であれば「jpeg」を返します。

もし現在処理中のファイルに拡張子が含まれていない場合や、現在指し示している要素がファイルではなくディレクトリであった場合には、空の文字列が戻り値となります。

このメソッドは特別な引数を必要とせず、RecursiveDirectoryIteratorオブジェクトが持つ内部の状態(現在どのファイルやディレクトリを指しているか)に基づいて拡張子を自動的に判断します。

プログラムがディレクトリ内の多種多様なファイルを分類したり、特定の拡張子を持つファイルだけを選別して処理を実行したりする場面で非常に役立ちます。例えば、画像ファイルだけを別の場所に移動するスクリプトや、ログファイルだけを解析するツールなどを作成する際に、ファイルの種別を判別する重要な手段となります。

構文(syntax)

1<?php
2// RecursiveDirectoryIterator のインスタンスを作成します。
3// 例として、現在のスクリプトが実行されているディレクトリを指定します。
4$directoryIterator = new RecursiveDirectoryIterator(__DIR__);
5
6// イテレータが現在指している要素(初期状態では指定されたディレクトリ自身)の拡張子を取得します。
7// ディレクトリの場合、通常は拡張子がないため空文字列が返されます。
8// もしイテレータが特定のファイルを指すように進められていれば、そのファイルの拡張子が返されます。
9$extension = $directoryIterator->getExtension();
10
11echo "取得された拡張子: " . $extension . "\n";
12?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このメソッドは、現在のファイルシステムのパスから拡張子部分を文字列として返します。例えば、example.txt というファイルであれば、txt という文字列が返されます。