International PHP Conference Berlin 2025

filectime

(PHP 4, PHP 5, PHP 7, PHP 8)

filectimeRenvoie la date de dernière modification de l'inode d'un fichier

Description

filectime(string $filename): int|false

Renvoie la date de dernière modification de l'inode d'un fichier.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Renvoie la date à laquelle l'inode a été modifié pour la dernière fois ou false si une erreur survient. L'heure est retournée sous la forme d'un timestamp Unix.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec filectime()

<?php

// Affiche : somefile.txt a été modifié le : December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (
file_exists($filename)) {
echo
"$filename a été modifié le : " . date("F d Y H:i:s.", filectime($filename));
}

?>

Notes

Note:

Sur la plupart des serveurs UNIX, un fichier est considéré comme modifié si les données de son inode sont modifiées. C'est-à-dire lorsque les permissions (utilisateur, groupe ou autre) ont été modifiées. Voyez aussi filemtime() (que vous pourrez utiliser lorsque vous créerez des indications telles que "Dernière modification : " sur les pages web) et fileatime().

Note:

Notez aussi que sur certains systèmes UNIX, le ctime d'un fichier texte est considéré comme sa date de création. Cela est faux ! Il n'y a pas de date de création de fichier sous la plupart des systèmes UNIX.

Note:

Notez que la précision temporelle peut varier selon le système de fichiers utilisé.

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier

add a note

User Contributed Notes 9 notes

up
14
StevieMc at example dot com
18 years ago
This method gets all the files in a directory, and echoes them in the order of the date they were added (by ftp or whatever).

<?PHP
function dirList ($directory, $sortOrder){

//Get each file and add its details to two arrays
$results = array();
$handler = opendir($directory);
while (
$file = readdir($handler)) {
if (
$file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){
$currentModified = filectime($directory."/".$file);
$file_names[] = $file;
$file_dates[] = $currentModified;
}
}
closedir($handler);

//Sort the date array by preferred order
if ($sortOrder == "newestFirst"){
arsort($file_dates);
}else{
asort($file_dates);
}

//Match file_names array to file_dates array
$file_names_Array = array_keys($file_dates);
foreach (
$file_names_Array as $idx => $name) $name=$file_names[$name];
$file_dates = array_merge($file_dates);

$i = 0;

//Loop through dates array and then echo the list
foreach ($file_dates as $file_dates){
$date = $file_dates;
$j = $file_names_Array[$i];
$file = $file_names[$j];
$i++;

echo
"File name: $file - Date Added: $date. <br/>"";
}

}
?>

I hope this is useful to somebody.
up
3
faketruth at yandex dot ru
9 years ago
If you need file creation time on Mac OS X:

<?php
if ($handle = popen('stat -f %B ' . escapeshellarg($filename), 'r')) {
$btime = trim(fread($handle, 100));
echo
strftime("btime: %Y.%m.%d %H:%M:%S\n", $btime);
pclose($handle);
}
?>
up
3
javi at live dot com
15 years ago
Filemtime seems to return the date of the EARLIEST modified file inside a folder, so this is a recursive function to return the date of the LAST (most recently) modified file inside a folder.

<?php

// Only take into account those files whose extensions you want to show.
$allowedExtensions = array(
'zip',
'rar',
'pdf',
'txt'
);

function
filemtime_r($path)
{
global
$allowedExtensions;

if (!
file_exists($path))
return
0;

$extension = end(explode(".", $path));
if (
is_file($path) && in_array($extension, $allowedExtensions))
return
filemtime($path);
$ret = 0;

foreach (
glob($path."/*") as $fn)
{
if (
filemtime_r($fn) > $ret)
$ret = filemtime_r($fn);
// This will return a timestamp, you will have to use date().
}
return
$ret;
}

?>
up
2
coolkoon at gmail dot com
13 years ago
You should avoid feeding the function files without a path. This applies for filemtime() and possibly fileatime() as well. If you omit the path the command will fail with the warning "filectime(): stat failed for filename.php".
up
1
website at us dot kaspersky dot com
17 years ago
Line 37 of the code above has an error.

echo "File name: $file - Date Added: $date. <br/>"";

There is an extra " after the <br/> that needs to be deleted in order for this code to work.
up
1
m dot rabe at directbox dot com
14 years ago
Under Windows you can use fileatime() instead of filectime().
up
0
soapergem at gmail dot com
15 years ago
Note that on Windows systems, filectime will show the file creation time, as there is no such thing as "change time" in Windows.
up
0
chuck dot reeves at gmail dot com
17 years ago
filectime running on windows reading a file from a samba share, will still show the last modified date.
up
-1
laurent dot pireyn at wanadoo dot be
23 years ago
If you use filectime with a symbolic link, you will get the change time of the file actually linked to. To get informations about the link self, use lstat.
To Top