目次
ファイルが存在するかを調べる
ファイルが存在するかを調べるには file_exists
関数を使います。
$bool = file_exists('test.txt');
ファイルがディレクトリかを調べる
ファイルがディレクトリかどうかを調べるには is_dir
関数を使います。
$bool = is_dir('test.txt');
ファイルか通常のファイルかを調べる
ファイルが通常のファイルかどうかを調べるには is_file
関数を使います。
$bool = is_file('test.txt');
ファイルかシンボリックリンクかを調べる
ファイルがシンボリックリンクかどうかを調べるには is_link
関数を使います。
$bool = is_link('test.txt');
ファイルが読み込み可能かを調べる
ファイルが読み込み可能かを調べるには is_readable
関数を使います。
$bool = is_readable('test.txt');
ファイルが書き込み可能かを調べる
ファイルが書き込み可能かを調べるには is_writable
関数を使います。
$bool = is_writable('test.txt');
ファイルが実行可能かを調べる
ファイルが実行可能かを調べるには is_executable
関数を使います。
$bool = is_executable('test.txt');
ファイルのサイズを取得する
ファイルのサイズを取得するには filesize
関数を使います。
<?php
$size = filesize("test.txt");
echo $size . "\n";
ファイルの最終アクセス時刻を取得する
ファイルの最終アクセス時刻を取得するには fileatime
関数を使用します。
時間はUNIXタイムスタンプとして返されるので、date
関数などを使って文字列に変換できます。
<?php
$atime = fileatime("test.txt");
echo date('Y-m-d H:i:s', $atime);
ファイルの更新時刻を取得する
ファイルの更新時刻を取得するには filemtime
関数を使用します。
時間はUNIXタイムスタンプとして返されるので、date
関数などを使って文字列に変換できます。
<?php
$mtime = filemtime("test.txt");
echo date('Y-m-d H:i:s', $mtime);
ファイルのinode変更時刻を取得する
ファイルのinode変更時刻を取得するには filectime
関数を使用します。
時間はUNIXタイムスタンプとして返されるので、date
関数などを使って文字列に変換できます。
<?php
$ctime = filectime("test.txt");
echo date('Y-m-d H:i:s', $ctime);
ファイルのパーミッションを取得する
ファイルのパーミッションは fileperms
関数の結果からパーミッション情報を抜き出すことで取得できます。
<?php
$perms = fileperms("test.txt") & 0777;
printf("%o\n", $perms);
ファイルの所有者を取得する
ファイル所有者のIDを取得するには fileowner
関数を利用します。
取得したIDは posix_getpwuid
関数を使って所有者名に変換できます。
<?php
$owner_id = fileowner("test.txt");
$owner = posix_getpwuid($owner_id);
echo $owner_id . "\n";
echo $owner['name'] . "\n";
ファイルのグループを取得する
ファイルのグループIDを取得するには filegroup
関数を利用します。
取得したグループIDは posix_getgrgid
関数を使ってグループ名に変換できます。
<?php
$group_id = filegroup("test.txt");
$group = posix_getgrgid($group_id);
echo $group_id;
echo $group['name'];
ファイルタイプを取得する
ファイルタイプを取得するには filetype
関数を使います。
fifo、char、dir、 block、link、file、socket および unknownのいずれかの値が返されます。
<?php
$type = filetype("test.txt");
echo $type . "\n";
ファイルに関する情報を取得する
stat
関数を使うとファイルに関する様々な統計情報が取得できます。
<?php
$stat = stat("test.txt");
echo $stat['dev'] . "\n"; // デバイス番号
echo $stat['ino'] . "\n"; // inode 番号
echo $stat['mode'] . "\n"; // inode プロテクトモード
echo $stat['nlink'] . "\n"; // リンク数
echo $stat['uid'] . "\n"; // ユーザーID
echo $stat['gid'] . "\n"; // グループID
echo $stat['rdev'] . "\n"; // inode デバイス の場合、デバイスの種類
echo $stat['size'] . "\n"; // サイズ
echo $stat['atime'] . "\n"; // 最終アクセス時刻
echo $stat['mtime'] . "\n"; // 最終更新時刻
echo $stat['ctime'] . "\n"; // 最終inode変更時刻
echo $stat['blksize'] . "\n"; // ファイルIOのブロックサイズ
echo $stat['blocks'] . "\n"; // 512 バイトのブロックの確保数
statの結果はキャッシュされます。キャッシュを消すには clearstatcache
関数を使います。
stat
の他にファイルをオープンして、そのポインタを利用して情報を得る fstat
関数もあります。
<?php
$f = fopen('a.php', 'r');
$stat = fstat($f);
fclose($f);
stat
関数はファイルがシンボリックリンクだった場合、リンク先のファイルに関する情報を返します。シンボリックリンク自体の情報が欲しい場合は stat
関数ではなく lstat
関数を使います。
ファイルの inode を取得する
ファイルの inode を取得するには fileinode
関数を使います。
<?php
$inode = fileinode('a.php');
echo $inode . "\n";