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