pathinfo

関数の概要

PHPの pathinfo 関数は、ファイルパスの情報を解析し、そのパーツ(ディレクトリ名、ベース名、拡張子、ファイル名)を連想配列として取得できる便利な関数です。ファイル操作やパスの加工を行う際によく使われます。

パラメータの説明

  • string $path:解析対象のファイルパスを指定します。絶対パスや相対パスの文字列を渡します。
  • int $options(省略可能):返す情報の種類を指定します。省略時は全ての情報を含む連想配列を返します。主な定数は以下の通りです。
    • PATHINFO_DIRNAME:ディレクトリ名のみを取得
    • PATHINFO_BASENAME:ファイル名(拡張子含む)を取得
    • PATHINFO_EXTENSION:拡張子のみを取得
    • PATHINFO_FILENAME:ファイル名(拡張子なし)を取得

戻り値

$optionsパラメータの指定によって異なります。
オプションを省略した場合は、dirname, basename, extension, filename の情報を含む連想配列を返します。
オプションを指定した場合は、該当する情報の文字列を返します。

使用例

基本的な使い方

$path = '/var/www/html/index.php';
$info = pathinfo($path);
print_r($info);

この例では、ファイルパスの各情報をまとめて取得します。結果は連想配列として返されます。

特定の情報だけ取得する

$extension = pathinfo('/var/www/html/index.php', PATHINFO_EXTENSION);
echo '拡張子は: ' . $extension; // 出力: 拡張子は: php

拡張子だけ知りたい場合は、第2引数に PATHINFO_EXTENSION を指定します。

ファイル名(拡張子なし)の取得

$filename = pathinfo('/home/user/docs/report.pdf', PATHINFO_FILENAME);
echo 'ファイル名: ' . $filename; // 出力: ファイル名: report

拡張子を除いたファイル名のみを取得したい場合に便利です。

ディレクトリ名の取得

$dirname = pathinfo('/etc/nginx/nginx.conf', PATHINFO_DIRNAME);
echo 'ディレクトリ名: ' . $dirname; // 出力: ディレクトリ名: /etc/nginx

ファイルが存在するディレクトリのパスだけを取得できます。

関連する関数

  • basename():ファイル名部分だけを取得
  • dirname():ディレクトリ部分だけを取得
  • realpath():絶対パスを解決する
  • file_exists():ファイルの存在確認

まとめ

pathinfo はファイルパスの各種情報を簡単に取得できるため、ファイル操作やパスの整形を行う際に非常に有用です。パラメータを工夫することで必要な情報だけを効率的に取り出せるため、初心者から実務レベルまで幅広く活用できます。ぜひ用途に合わせて使いこなしてみてください。