Можем ли мы получить Модифицированное время и размер каталога, то есть статистику в php? Как?
Да. Вы можете использовать функцию stat
$stat = stat('\path\to\directory'); echo 'Modification time: ' . $stat['mtime']; // will show unix time stamp. echo 'Size: ' . $stat['size']; // in bytes.
Вы можете получить модифицированное время с помощью filemtime
или SplFileInfo::getMTime
.
Что касается получения размера каталога, вы имеете в виду размер файла всего содержимого внутри него (может показаться глупым вопросом, размер неоднозначен)?
Если вам требуется только зарегистрированный «файлize» каталога, тогда необходимо будет SplFileInfo::getSize
filesize
или SplFileInfo::getSize
.
$dir = new SplFileInfo('path/to/dir'); printf( "Directory modified time is %s and size is %d bytes.", date('d/m/YH:i:s', $dir->getMTime()), $dir->getSize() );
Для меня использование filemtime
работало просто отлично.
<?php $path_to_file = '/tmp/'; echo filemtime($path_to_file); // 1380387841
Несмотря на то, что он называется «файл mtime», он также работает для каталогов.
Убедитесь, что файл или каталог, который вы проверяете, существуют, иначе вы получите что-то вроде:
filemtime (): сбой stat для / asdfasdfasdf в test.php в строке 3
Возможные исправления включают в себя что-то «правильное»:
$path = '/tmp/'; $mtime = file_exists($path)?filemtime($path):'';
И что-то менее подробное, но хакерское с помощью оператора подавления ошибок ( @
):
$path = '/tmp/'; $mtime = @filemtime($path);
int filemtime (строка $ filename )
Эта функция возвращает время, когда записываются блоки данных файла, то есть время, когда содержимое файла было изменено.