realpath

関数の概要

PHPの realpath 関数は、指定したパスの絶対パスを返します。ファイルやディレクトリの絶対的な場所を取得したい場合に便利で、相対パスやシンボリックリンクを解決して正規化されたパスを取得できます。

パラメータの説明

  • path (string): 絶対パスを取得したいファイルやディレクトリのパスを指定します。相対パスやシンボリックリンクを含むパスも指定可能です。

戻り値

指定したパスの絶対パスを文字列で返します。ファイルやディレクトリが存在しない場合は FALSE を返します。

使用例

基本的な使い方

<?php
$path = "./test/../example.txt";
$absolutePath = realpath($path);
echo $absolutePath;
?>

この例では、相対パスを絶対パスに変換しています。./test/../example.txt は、実際には1つ上のディレクトリにある example.txt を指しているため、realpath により確定した絶対パスが出力されます。

シンボリックリンクの解決

<?php
$linkPath = "/var/www/html/link_to_file";
$resolvedPath = realpath($linkPath);
echo $resolvedPath;
?>

シンボリックリンク (link_to_file) の実体ファイルの絶対パスを取得できます。リンク先のパスが返されるため、リンクの中身を正確に把握したいときに使います。

ディレクトリの絶対パス取得

<?php
$dir = "./myfolder";
$realDir = realpath($dir);
echo $realDir;
?>

ディレクトリの相対パスを絶対パスに変換します。ファイルだけでなくディレクトリにも利用可能です。ただし、指定したファイルやディレクトリが存在しない場合は false を返しますので注意が必要です。

関連する関数

  • dirname – パスの親ディレクトリを取得する
  • basename – パスの末尾のファイル名のみを取得する
  • realpath_cache_get – realpathのキャッシュ情報を取得する

まとめ

realpath はPHPでファイルやディレクトリの絶対パスを簡単に取得できる関数です。相対パスやシンボリックリンクも解決してくれるため、ファイル操作やパス処理を正確に行いたい場面で役立ちます。存在しないパスを指定すると false を返すので、利用時には戻り値のチェックを忘れないようにしましょう。