How to get the newest file in a directory in php

Here’s an attempt using scandir, assuming the only files in the directory have timestamped filenames:

$files = scandir('data', SCANDIR_SORT_DESCENDING);
$newest_file = $files[0];

We first list all files in the directory in descending order, then, whichever one is first in that list has the “greatest” filename — and therefore the greatest timestamp value — and is therefore the newest.

Note that scandir was added in PHP 5, but its documentation page shows how to implement that behavior in PHP 4.

Leave a Comment