PHP查找过去2天内的文件更改

时间:2016-03-19 08:50:12

标签: php

几天前(不幸的是)我的网站被黑了。为了防止这种情况,我想要包含一个PHP,它会检查过去2天内是否有任何文件被更改/添加。 我的出发点是以下功能:

function topmods($dir)
{
  $mods = array();
  foreach (glob($dir . '/*') as $f) {
    $mods[] = filemtime($f);
  }
  sort($mods);
  $mods = array_reverse($mods);
  return $mods;
}

我希望能够改进它,以便只有最近2天内更改的文件才会包含在数组中。有关如何重写foreach函数的任何建议,以便在数组中只包含满足此条件的文件吗?

if (time() - filemtime($testfile) >= 2 * 86400)

由于

1 个答案:

答案 0 :(得分:0)

filemtime()获得unix时间戳后,您可以从2天前创建一个unix时间戳并进行比较,如下所示:

function topmods($dir)
{
    // Get actual timestamp and subtract 2 days
    $dateToCompare = time()-((60 * 60 * 24)*2); 
    $mods = [];
    foreach (glob($dir . '/*') as $f) {
        // This just compares the two timestamp values
        if (filemtime($f)<$dateToCompare) {
            $mods[] = filemtime($f);
        }
    }
    sort($mods);
  $mods = array_reverse($mods);
  return $mods;
}