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

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

作成日: 更新日:

基本的な使い方

getSubPathメソッドは、PHPのRecursiveDirectoryIteratorクラスに属し、現在イテレータが指し示しているファイルやディレクトリの、イテレータの基点となるディレクトリからの相対的なディレクトリパスを取得するために実行するメソッドです。

RecursiveDirectoryIteratorは、指定されたディレクトリとその中のサブディレクトリを再帰的に走査する際に使用されます。このgetSubPathメソッドを利用することで、走査中のファイルやディレクトリが、イテレータの開始点であるルートディレクトリに対してどのような相対パス構造を持っているかを文字列として取得できます。

具体的には、例えばイテレータを /var/www/html/ というディレクトリで開始し、現在 /var/www/html/src/Controller/index.php というファイルに到達している場合、getSubPathメソッドは 'src/Controller' という文字列を返します。これはファイル名を含まず、その要素がどのサブディレクトリ階層に位置するかを示します。

この機能は、特定のディレクトリ構造に基づいて処理を分岐させたい場合や、ディレクトリの階層構造をプログラムで管理・表示したい場合など、ファイルシステムを柔軟に操作する際に非常に有用です。現在の要素の相対的な位置情報を正確に把握するのに役立ちます。

構文(syntax)

1<?php
2
3$iterator = new RecursiveDirectoryIterator('/path/to/some/directory');
4$iterator->rewind();
5$fileInfo = $iterator->current();
6echo $fileInfo->getSubPath();

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このメソッドは、現在のエントリのパスのうち、RecursiveDirectoryIterator が初期化された際のパスを除いた部分を文字列として返します。