【PHP8.x】getCTimeメソッドの使い方

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

作成日: 更新日:

基本的な使い方

getCTimeメソッドは、SplFileInfoオブジェクトが指すファイルの最終inode変更時刻を取得するメソッドです。この「inode変更時刻」(ctime)は、ファイルのデータ内容そのものが最後に変更された時刻(mtime)とは区別され、ファイルの所有者、グループ、パーミッション、あるいはファイルのデータサイズといった、ファイルシステム上のメタデータが最後に更新された日時を表します。例えば、ファイルのアクセス権限を変更したり、ファイル名を変更したりした場合に、このctimeが更新されます。

このメソッドは、取得した時刻をUnixタイムスタンプという形式で整数値として返します。Unixタイムスタンプとは、1970年1月1日0時0分0秒(UTC)を基準点として、そこからの経過秒数を数値で表したものです。この値は、日付や時刻を扱う関数と組み合わせて、人間が読みやすい形式に変換することが可能です。ファイルのメタデータの変更履歴を追跡したり、ファイルの状態に基づいて何らかの処理を行う際の基準として利用できます。もし、ファイルが存在しない、またはアクセス権がないなどの理由で時刻の取得に失敗した場合は、falseが返されますので、プログラムでその結果を適切に処理する必要があります。

構文(syntax)

1<?php
2// 一時ファイルを作成し、SplFileInfoオブジェクトで使用します。
3$filename = 'example_file_for_ctime.txt';
4file_put_contents($filename, 'This is a test file.');
5
6// SplFileInfoオブジェクトをインスタンス化
7$fileInfo = new SplFileInfo($filename);
8
9// getCTime()メソッドを呼び出し、ファイルの変更時刻(ctime)を取得
10$changeTime = $fileInfo->getCTime();
11
12// 取得した時刻を表示します。Unixタイムスタンプは日付形式に変換すると分かりやすいです。
13if ($changeTime !== false) {
14    echo "ファイル '" . $filename . "' の変更時刻 (ctime): " . date('Y-m-d H:i:s', $changeTime) . PHP_EOL;
15} else {
16    echo "ファイルの変更時刻の取得に失敗しました。" . PHP_EOL;
17}
18
19// 使用したファイルを削除します。
20unlink($filename);
21?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

SplFileInfo::getCTime()は、ファイルのinode(メタデータ)の変更時刻をUnixタイムスタンプ(整数)で返します。ファイルが存在しない、またはアクセス権がない場合はfalseを返します。

【PHP8.x】getCTimeメソッドの使い方 | いっしー@Webエンジニア