PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのpathinfo()関数とは?ファイルパス情報を取得する方法を徹底解説

PHPのpathinfo()関数は、ファイルパスに関する情報を連想配列として取得できる便利な関数です。パス文字列からディレクトリ名、ファイル名、拡張子などを簡単に取り出せるため、ファイル操作を行う際によく使われます。

第2引数を省略した場合、pathinfo()は以下の要素を含む連想配列を返します。

  • dirname(ディレクトリ名) − パスのディレクトリ部分を返します

  • basename(ベース名) − 拡張子付きのファイル名を返します

  • extension(拡張子) − ファイルの拡張子を返します

基本構文

pathinfo(path, options)

パラメータ

  • path − 情報を取得したい対象のファイルパスを指定します。

  • options − 返してほしい要素を限定する場合に指定します。以下の定数を使用できます。

    • PATHINFO_DIRNAME − dirname(ディレクトリ名)のみを返す
    • PATHINFO_BASENAME − basename(ファイル名)のみを返す
    • PATHINFO_EXTENSION − extension(拡張子)のみを返す
    • PATHINFO_FILENAME − 拡張子を除いたファイル名のみを返す(PHP 5.2以降で利用可能)

戻り値

第2引数を指定しない場合、pathinfo()関数は上記すべての要素を含む連想配列を返します。次の例では、第2引数を設定していないため、パスに関する全情報が出力されます。

使用例:すべての情報を取得する

<?php
   print_r(pathinfo("/images/architecture.png"));
?>

出力結果

Array
(
   [dirname] => /images
   [basename] => architecture.png
   [extension] => png
)

続いて、各要素を個別に取得する方法を見ていきましょう。

使用例:ディレクトリ名だけを取得する

<?php
   print_r(pathinfo("/images/architecture.png", PATHINFO_DIRNAME));
?>

出力結果

/images

PATHINFO_DIRNAME を指定することで、パスのディレクトリ部分だけを文字列として取得できます。

使用例:ファイル名(basename)だけを取得する

<?php
   print_r(pathinfo("/images/architecture.png", PATHINFO_BASENAME));
?>

出力結果

architecture.png

PATHINFO_BASENAME を指定すると、拡張子を含むファイル名のみが返されます。

使用例:拡張子だけを取得する

<?php
   print_r(pathinfo("/images/architecture.png", PATHINFO_EXTENSION));
?>

出力結果

png

PATHINFO_EXTENSION を使えば、ファイルの拡張子だけを簡単に抽出できます。アップロードファイルの種類チェックなどにも活用できるでしょう。

まとめ

pathinfo()関数を使えば、複雑な文字列処理を行わなくても、1つの関数呼び出しでファイルパスから必要な情報を柔軟に取得できます。用途に応じて第2引数のオプションを使い分けることで、コードをよりシンプルかつ読みやすく保つことができます。

  1. PHPのfileinode()関数 – ファイルのinode番号を取得する方法

    fileinode() 関数は、指定したファイルの inode番号 を取得するためのPHP組み込み関数です。処理が成功した場合はファイルのinode番号を返し、失敗した場合は FALSE を返します。 構文 fileinode(file_path) パラメータ file_path − 調査対象となるファイルのパスを指定します。 戻り値 fileinode()関数は、処理が成功した場合にそのファイルのinode番号を返します。失敗した場合には FALSE を返します。 使用例 以下は、fileinode()関数を使用して、指定ファイルのinode番号と現在実行中のスクリプト自身の

  2. PHPのdisk_free_space()関数とは?ディレクトリの空き容量を取得する方法

    PHPのdisk_free_space()関数は、指定したディレクトリ(またはファイルシステムパーティション)で利用可能な空き容量をバイト単位で返す組み込み関数です。ディスク容量の監視や管理ツールの開発などに活用できます。構文disk_free_space(dir_name);パラメータdir_name − 空き容量を調べたいディレクトリ名を指定します。Windows環境の場合は「C:\」のようにドライブ文字を含むパスも指定可能です。戻り値disk_free_space()関数は、指定されたファイルシステム上で利用可能な空き容量をバイト数(float型)として返します。処理に失敗した場合はfa