fileatime

関数の概要

PHPの fileatime 関数は、指定したファイルの最終アクセス時刻(最後にファイルが読み取られた日時)を取得するための関数です。ファイルがいつ最後にアクセスされたかを知りたい場合に便利で、ファイルの利用状況を把握する際によく使われます。

パラメータの説明

  • filename(必須): アクセス時刻を取得したいファイルのパスを文字列で指定します。絶対パスや相対パスが使用可能です。

戻り値

成功すると、ファイルの最終アクセス時刻がUnixタイムスタンプ(1970年1月1日からの経過秒数)で返されます。失敗した場合は false を返します。例えば、ファイルが存在しない場合や読み込み権限がない場合などです。

使用例

基本的な使い方

<?php
$file = 'example.txt';
$atime = fileatime($file);

if ($atime !== false) {
    echo '最終アクセス時刻: ' . date('Y-m-d H:i:s', $atime);
} else {
    echo 'ファイルのアクセス時刻を取得できませんでした。';
}
?>

この例では、指定したファイルの最終アクセス時刻を取得し、日付フォーマットで表示しています。ファイルが存在しない場合はエラーメッセージを表示します。

複数ファイルのアクセス時刻をまとめて取得

<?php
$files = ['file1.txt', 'file2.txt', 'file3.txt'];

foreach ($files as $file) {
    $atime = fileatime($file);
    if ($atime !== false) {
        echo $file . ' の最終アクセス時刻: ' . date('Y-m-d H:i:s', $atime) . "<br>";
    } else {
        echo $file . ' はアクセス時刻を取得できませんでした。<br>';
    }
}
?>

複数のファイルをループで処理し、各ファイルの最終アクセス時刻を取得して表示します。ファイルごとに存在チェックを行い、失敗時のエラーハンドリングも行っています。

アクセス時刻を履歴としてログに保存する

<?php
$file = 'data.csv';
$logFile = 'access_log.txt';

$atime = fileatime($file);
if ($atime !== false) {
    $log = $file . ' 最終アクセス時刻: ' . date('Y-m-d H:i:s', $atime) . "。n";
    file_put_contents($logFile, $log, FILE_APPEND);
} else {
    echo 'ログ記録用のアクセス時刻取得に失敗しました。';
}
?>

ファイルのアクセス時刻を取得し、ログファイルに追記しています。定期的なアクセスの監視やデバッグにも役立つ方法です。

関連する関数

  • filemtime – ファイルの最終更新日時を取得する
  • filectime – ファイルの最終変更日時(メタデータの変更)が取得できる
  • stat – ファイルの詳細な情報を配列形式で取得できる

まとめ

fileatime はPHPでファイルの最終アクセス日時を簡単に取得できる便利な関数です。ファイルの利用状況の把握やログ記録、キャッシュの有効期限チェックなどさまざまな場面で使えます。使用時はファイルの存在確認や権限エラーの可能性を考慮し、例外処理やエラーハンドリングを行うことが重要です。