【PHP8.x】getMTimeメソッドの使い方
getMTimeメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
getMTimeメソッドは、DirectoryIteratorオブジェクトが現在指し示しているファイルまたはディレクトリの最終更新時刻を取得するメソッドです。このメソッドは、ファイルやディレクトリの内容が最後に変更された日時を、Unixタイムスタンプという形式の整数値として返します。Unixタイムスタンプは、1970年1月1日 00:00:00 GMT(協定世界時)からの経過秒数を表しており、プログラミングにおいて日時を数値で扱う際によく用いられます。
システムエンジニアがファイルを管理する際、どのファイルがいつ更新されたかを知ることは非常に重要です。例えば、バックアップシステムで前回バックアップ以降に更新されたファイルのみを対象にしたり、キャッシュシステムで古いファイルを自動的に削除したりする場合に、この最終更新時刻が役立ちます。
DirectoryIteratorクラスは、指定されたディレクトリ内のすべてのファイルやサブディレクトリを順番に走査(たどる)するための機能を提供します。その走査中に、各ファイルやディレクトリに対してgetMTimeメソッドを呼び出すことで、それぞれの最終更新時刻を簡単に取得できます。
返される値は通常、最終更新時刻を示す整数ですが、ファイルが存在しない場合や、何らかの理由で時刻の取得に失敗した場合にはfalseを返すこともあります。取得したタイムスタンプは、PHPのdate()関数などと組み合わせて、YYYY-MM-DD HH:MM:SSのような人間が読みやすい形式に変換することが可能です。このメソッドを使うことで、ファイルシステムの情報を効率的に操作し、アプリケーションの要件に応じた柔軟な処理を実装できるようになります。
構文(syntax)
1<?php 2// 現在のディレクトリを対象とするDirectoryIteratorオブジェクトを作成 3$directoryIterator = new DirectoryIterator('.'); 4 5// ディレクトリ内の各ファイルやディレクトリを順に処理 6foreach ($directoryIterator as $itemInfo) { 7 // $itemInfo は、各ファイルまたはディレクトリの情報を持つオブジェクトです。 8 // getMTime() メソッドを呼び出すことで、そのファイルまたはディレクトリの 9 // 最終更新時刻(Unixタイムスタンプ形式の整数)を取得します。 10 $modificationTime = $itemInfo->getMTime(); 11 12 // 構文を示すための短い例として、最初の要素で処理を終了します。 13 // 通常はここで、$modificationTime を利用した処理を行います。 14 // 例: echo "ファイル/ディレクトリ名: " . $itemInfo->getFilename() . ", 更新時刻 (Unixタイムスタンプ): " . $modificationTime . "\n"; 15 break; 16} 17?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int|false
DirectoryIterator::getMTime は、ファイルまたはディレクトリの最終変更時刻を Unix タイムスタンプ(1970年1月1日午前0時からの経過秒数)として整数で返します。エラーが発生した場合は false を返します。