我想编写一个PHP脚本,它会告诉我今天创建了多少个文件夹(没有修改过!!)。
实施例。假设是否给出了路径(如c:\ Data),所以我的脚本必须不断检查 如果它是任何文件夹的新条目,则给出路径。我使用过http://php.net/manual/en/function.date-diff.php。但是也可以获得修改过的文件夹的结果。
答案 0 :(得分:1)
使用filectime。对于Windows,它将返回创建时间,对于Unix,更改时间是最好的,因为在Unix上没有创建时间(在大多数文件系统中)。
使用参考文件比较文件的年龄,可以检测出不使用数据库的新文件。
// Path to the reference file.
// All files newer than this will be treated as new
$referenceFile="c:\Data\ref";
// Location to search for new folders
$dirsLocation="c:\Data\*";
// Get modification date of reference file
if (file_exists($referenceFile))
$referenceTime = fileatime($referenceFile);
else
$referenceTime = 0;
// Compare each directory with the reference file
foreach(glob($dirsLocation, GLOB_ONLYDIR) as $dir) {
if (filectime($dir) > $referenceTime)
echo $dir . " is new!";
}
// Update modification date of the reference file
touch($referenceFile);
另一种解决方案可能是使用数据库。不在数据库中的任何文件夹都是新的。这样可以确保不会捕获已修改的文件夹。
答案 1 :(得分:0)
您可能想尝试使用cron像每一分钟一样启动脚本并检查目录列表之间的区别(从之前和当前我的意思),而不是日期。这不是一个完美的解决方案,但它会起作用。
使用以下命令检查目录:
$dirs = array_filter(glob('*'), 'is_dir');
稍后将其与array_diff
进行比较