【PHP8.x】filetype関数の使い方

作成日: 更新日:

filetype関数は、指定されたファイルのタイプを判断し、その種類を表す文字列を返す関数です。この関数は、与えられたパスが指すファイルやディレクトリの種類を識別します。識別可能なタイプは多岐にわたり、具体的には、名前付きパイプを意味する"fifo"、文字型スペシャルファイルを意味する"char"、ディレクトリを意味する"dir"、ブロック型スペシャルファイルを意味する"block"、シンボリックリンクを意味する"link"、そして通常のファイルを意味する"file"などがあります。これらのいずれにも当てはまらない場合や、タイプを特定できない場合は"unknown"という文字列を返します。

引数としては、タイプを調べたいファイルやディレクトリへのパスを文字列で一つ受け取ります。

関数が正常に実行され、ファイルのタイプを判断できた場合は、前述のタイプを示す文字列が返されます。しかし、指定されたパスが存在しない場合、ファイルへのアクセス権がない場合、またはファイルのステータス情報を取得できない場合など、何らかのエラーが発生した際にはブール値のfalseを返します。PHP 8では、無効なパスが指定された際にE_WARNINGレベルの警告が発生するようになりました。そのため、この関数を利用する際には、戻り値がfalseでないことを確認し、エラーハンドリングを行うことが重要です。filetype関数は、ファイルの処理を行う際に、その種類に応じて異なる操作を行いたい場合に非常に有用で、ファイルシステムを操作するプログラムにおいて重要な役割を果たします。

基本的な使い方

構文(syntax)

<?php
// ファイルを作成し、その種類を調べます。
$filename = 'example.txt';
file_put_contents($filename, 'これはテストファイルです。');

// filetype() 関数を使ってファイルの種類を取得します。
$type = filetype($filename);
echo "ファイル '{$filename}' の種類は: {$type}\n";

// 後処理として作成したファイルを削除します。
unlink($filename);

// ディレクトリの種類を調べることもできます。
$dirname = __DIR__; // 現在のスクリプトがあるディレクトリ
$type = filetype($dirname);
echo "ディレクトリ '{$dirname}' の種類は: {$type}\n";
?>

引数(parameters)

string $filename

  • string $filename: ファイルの種類を判定したいファイルへのパスを指定する文字列

戻り値(return)

string|false

指定されたファイルパスのファイルタイプを文字列で返します。ファイルが見つからない、またはファイルタイプを判別できない場合は false を返します。

【PHP8.x】filetype関数の使い方 | いっしー@Webエンジニア