filetype

(PHP 4, PHP 5, PHP 7, PHP 8)

filetypeファイルタイプを取得する

説明

filetype(string $filename): string|false

指定したファイルのタイプを返します。

パラメータ

filename

ファイルへのパス。

戻り値

ファイルのタイプを返します。返される値は fifo、char、dir、 block、link、file、socket および unknown のいずれかです。

エラーが発生すると false を返します。 また filetype() は stat コールに失敗したり、 未知のファイルタイプであったりした場合に E_NOTICE メッセージを発行します。

エラー / 例外

失敗したときは E_WARNING が発生します。

例1 filetype() の例

<?php

echo filetype('/etc/passwd');
echo
"\n";
echo
filetype('/etc/');

?>

上の例の出力は以下となります。

file
dir

注意

注意: この関数の結果は キャッシュされます。詳細は、clearstatcache() を参照してください。

ヒント

PHP 5.0.0 以降、この関数は、 何らかの URL ラッパーと組合せて使用することができます。 どのラッパーが stat() ファミリーをサポートしているかを調べるには サポートするプロトコル/ラッパー を参照してください。

参考

  • is_dir() - ファイルがディレクトリかどうかを調べる
  • is_file() - 通常ファイルかどうかを調べる
  • is_link() - ファイルがシンボリックリンクかどうかを調べる
  • file_exists() - ファイルまたはディレクトリが存在するかどうか調べる
  • mime_content_type() - ファイルの MIME Content-type を検出する
  • pathinfo() - ファイルパスに関する情報を返す
  • stat() - ファイルに関する情報を取得する

add a note

User Contributed Notes 3 notes

up
21
ruach at chpc dot utah dot edu
21 years ago
There are 7 values that can be returned. Here is a list of them and what each one means

block: block special device

char: character special device

dir: directory

fifo: FIFO (named pipe)

file: regular file

link: symbolic link

unknown: unknown file type
up
7
adlerweb
14 years ago
filetype() does not work for files >=2GB on x86 Linux. You can use stat as a workarround:

$type=trim(`stat -c%F $file`);

Note that stat returns diffenerent strings ("regular file","directory",...)
up
-2
7r6ivyeo at mail dot com
16 years ago
I use the CLI version of PHP on Windows Vista. Here's how to determine if a file is marked "hidden" by NTFS:

<?php
function is_hidden_file($fn) {

$attr = trim(exec('FOR %A IN ("'.$fn.'") DO @ECHO %~aA'));

if(
$attr[3] === 'h')
return
true;

return
false;
}
?>

Changing <?php if($attr[3] === 'h') ?> to <?php if($attr[4] === 's') ?> will check for system files.

This should work on any Windows OS that provides DOS shell commands.
To Top