我们可以获取目录的修改时间和大小,即php中的统计数据吗?怎么样?
答案 0 :(得分:12)
是。您可以使用stat功能
$stat = stat('\path\to\directory');
echo 'Modification time: ' . $stat['mtime']; // will show unix time stamp.
echo 'Size: ' . $stat['size']; // in bytes.
答案 1 :(得分:4)
您可以使用filemtime
或SplFileInfo::getMTime
获得修改时间。
至于获取目录的大小,是指其中所有内容的文件大小(可能听起来像一个愚蠢的问题, size 是不明确的)?
如果您只想记录目录中记录的'filesize',那么filesize
或SplFileInfo::getSize
就足够了。
$dir = new SplFileInfo('path/to/dir');
printf(
"Directory modified time is %s and size is %d bytes.",
date('d/m/Y H:i:s', $dir->getMTime()),
$dir->getSize()
);
答案 2 :(得分:4)
对我来说使用filemtime
工作得很好。
<?php
$path_to_file = '/tmp/';
echo filemtime($path_to_file); // 1380387841
即使它被称为“文件mtime”,它也适用于目录。
确保您检查的文件或目录存在,否则您将得到类似的内容:
filemtime():第3行的test.php中的/ asdfasdfasdf的stat失败
可能的修复包括'正确':
$path = '/tmp/';
$mtime = file_exists($path)?filemtime($path):'';
通过使用错误抑制运算符(@
)而不那么冗长但又简洁:
$path = '/tmp/';
$mtime = @filemtime($path);
int filemtime (字符串 $ filename )
此函数返回写入文件数据块的时间,即文件内容更改的时间。