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

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

作成日: 更新日:

基本的な使い方

getRealPathメソッドは、ファイルシステム上のシンボリックリンクを解決し、対象となるファイルやディレクトリの実際の絶対パスを取得するメソッドです。このメソッドは、SplFileInfoクラスのインスタンスに対して使用され、そのインスタンスが表すファイルやディレクトリの実パス、つまりシンボリックリンクをたどった最終的なパスを提供します。

例えば、特定のファイルが別の場所へのシンボリックリンクである場合、getRealPathメソッドはそのリンクが指し示す本来のファイルが存在する場所の絶対パスを返します。これにより、シンボリックリンクの有無にかかわらず、ファイルシステム上の正確な位置を特定することが可能になります。

このメソッドは引数を取りません。戻り値は、パスの解決に成功した場合は、ファイルまたはディレクトリの正規化された絶対パスを示す文字列です。しかし、対象のファイルやディレクトリが存在しない場合、あるいはシンボリックリンクの解決ができなかった場合は、ブール値のfalseを返します。

getRealPathメソッドは、ファイルパスを正規化し、シンボリックリンクを考慮した上でその実体へのパスを正確に把握したい場合に大変役立ちます。ファイルの比較や、ファイルパスの曖昧さを排除して確実なファイル操作を行いたい場面で利用され、堅牢なシステム構築に貢献します。

構文(syntax)

1<?php
2// 例として、カレントディレクトリに 'example.txt' が存在すると仮定します。
3// (このコードではファイル自体は作成しません)
4$filePath = 'example.txt';
5
6// SplFileInfo オブジェクトを作成します。
7$fileInfo = new SplFileInfo($filePath);
8
9// ファイルの実際のパス(シンボリックリンクを解決し、絶対パス)を取得します。
10// ファイルが存在しない場合やアクセスできない場合は false を返します。
11$realPath = $fileInfo->getRealPath();
12
13// 結果を出力します。
14if ($realPath !== false) {
15    echo "ファイルの実際のパス: " . $realPath . "\n";
16} else {
17    echo "ファイルの実際のパスを取得できませんでした。ファイルが存在しないか、アクセス権がありません。\n";
18}
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string|false

指定されたファイルへの絶対パスを返します。ファイルが存在しない場合はfalseを返します。

【PHP8.x】getRealPathメソッドの使い方 | いっしー@Webエンジニア