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.