Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PharFileInfo::getATime()メソッドの使い方

getATimeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getATimeメソッドは、PharFileInfoクラスに属し、PHARアーカイブ内の特定のファイルが最後にアクセスされた時刻(最終アクセス時刻)を取得するメソッドです。PHARアーカイブとは、複数のPHPファイルや関連リソースを一つのファイルにまとめて配布できるPHP独自のアーカイブ形式です。このPharFileInfoクラスは、そのPHARアーカイブに含まれる個々のファイルに関する詳細な情報を提供します。

getATimeメソッドが取得する「最終アクセス時刻」とは、ファイルの内容が最後に読み込まれたり、そのファイルの情報が参照されたりした際に更新される時刻を指します。例えば、PHARアーカイブ内のスクリプトが実行されたり、画像ファイルが読み込まれたりした時などにこの時刻が更新される可能性があります。このメソッドは、取得した時刻をUnixタイムスタンプという形式で返します。Unixタイムスタンプは、1970年1月1日0時0分0秒(UTC)からの経過秒数を整数値で表したもので、PHPのdate()関数などを使って、人間が理解しやすい日付や時刻の文字列に変換できます。

この情報は、PHARアーカイブ内のファイルの利用状況を追跡したり、特定のファイルが最後にいつ参照されたかを判断したりする際に役立ちます。ただし、一部のファイルシステムやオペレーティングシステムの設定によっては、ファイルのアクセス時刻が常に正確に更新されるとは限らない点にご留意ください。

構文(syntax)

1<?php
2try {
3    // 一時的なPharアーカイブを作成し、ファイルを追加します。
4    // このPharアーカイブ内のファイルのPharFileInfoオブジェクトを取得するために必要です。
5    $pharFile = __DIR__ . '/temp_example.phar';
6    if (file_exists($pharFile)) {
7        unlink($pharFile);
8    }
9    $phar = new Phar($pharFile);
10    $phar->addFromString('sample.txt', 'This is a sample text file.');
11
12    // Pharアーカイブ内の'sample.txt'というエントリのPharFileInfoオブジェクトを取得します。
13    // $fileInfoはPharFileInfoクラスのインスタンスとなります。
14    $fileInfo = $phar['sample.txt'];
15
16    // PharFileInfoオブジェクトからgetATime()メソッドを呼び出し、最終アクセス時刻を取得します。
17    // このメソッドは整数値(Unixタイムスタンプ)を返します。
18    $accessTime = $fileInfo->getATime();
19
20    // 取得したUnixタイムスタンプとそのタイムスタンプを人間が読める日付形式に変換して表示します。
21    echo "ファイルの最終アクセス時刻 (Unixタイムスタンプ): " . $accessTime . "\n";
22    echo "人間が読める形式: " . date('Y-m-d H:i:s', $accessTime) . "\n";
23
24    // 使用したPharオブジェクトを解放し、一時的なPharファイルを削除してクリーンアップします。
25    unset($phar);
26    unlink($pharFile);
27
28} catch (Exception $e) {
29    // 例外が発生した場合、エラーメッセージを表示し、可能であれば一時ファイルをクリーンアップします。
30    echo "エラーが発生しました: " . $e->getMessage() . "\n";
31    if (file_exists(__DIR__ . '/temp_example.phar')) {
32        unlink(__DIR__ . '/temp_example.phar');
33    }
34}

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

PharFileInfo::getATime は、Phar アーカイブ内のエントリの最終アクセス時刻を Unix タイムスタンプ(秒単位)で返します。 時刻の取得に失敗した場合は false を返します。

関連コンテンツ