19.1. Getting and Setting File Timestamps

Problem

You want to know when a file was last accessed or changed, or you want to update a file’s access or change time; for example, you want each page on your web site to display when it was last modified.

Solution

The fileatime( ) , filemtime( ), and filectime( ) functions return the time of last access, modification, and metadata change of a file:

$last_access = fileatime('larry.php');
$last_modification = filemtime('moe.php');
$last_change = filectime('curly.php');

The touch( ) function changes a file’s modification time:

touch('shemp.php');          // set modification time to now
touch('joe.php',$timestamp); // set modification time to $timestamp

Discussion

The fileatime( ) function returns the last time a file was opened for reading or writing. The filemtime( ) function returns the last time a file’s contents were changed. The filectime( ) function returns the last time a file’s contents or metadata (such as owner or permissions) were changed. Each function returns the time as an epoch timestamp.

A file’s modification time can be updated with touch( ). Without a second argument, touch( ) sets the modification time to the current date and time. To set a file’s modification time to a specific value, pass that value as an epoch timestamp to touch( ) as a second argument.

This code prints the time a page on your web site was last updated:

print "Last Modified: ".strftime('%c',filemtime($_SERVER['SCRIPT_FILENAME']));

See Also

Documentation ...

Get PHP Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.