Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环浏览一系列文件夹并检查文件夹的使用期限_Php_Loops_Filesystems_Directory - Fatal编程技术网

Php 循环浏览一系列文件夹并检查文件夹的使用期限

Php 循环浏览一系列文件夹并检查文件夹的使用期限,php,loops,filesystems,directory,Php,Loops,Filesystems,Directory,我正在制作一个Cron,它将删除一个超过15天的文件夹。我已经做了一个功能来删除文件夹及其内容,我没有的是在文件夹内循环,然后检查每个文件夹的年龄,如果是15天或以上,我将执行我的删除功能 我想在public/uploads中循环 在我的上传目录中,我存储了包含content ex的文件夹 public/ uploads/ Test/ Test2/ 我想检查这些文件夹有多旧,然后打电话删除它 function Delete($path) { if (is_dir(

我正在制作一个Cron,它将删除一个超过15天的文件夹。我已经做了一个功能来删除文件夹及其内容,我没有的是在文件夹内循环,然后检查每个文件夹的年龄,如果是15天或以上,我将执行我的删除功能

我想在
public/uploads中循环

在我的
上传
目录中,我存储了包含content ex的文件夹

public/
  uploads/
      Test/
      Test2/
我想检查这些文件夹有多旧,然后打电话删除它

function Delete($path)
{
 if (is_dir($path) === true)
 {
    $files = array_diff(scandir($path), array('.', '..'));

    foreach ($files as $file)
    {
        Delete(realpath($path) . '/' . $file);
    }

    return rmdir($path);
 }

 else if (is_file($path) === true)
 {
    return unlink($path);
 }

 return false;
}

我该怎么做?谢谢

您正在寻找的功能是。这允许您确定文件(或目录)的最后修改日期。结合使用,您可以循环查看它们并检查它们的日期

这是从我头顶上模拟出来的东西,让你大致了解你可能会如何做:

$dir = '/path/to/my/folders';
$folders = scandir($dir);
foreach ($folders as $folder) {
    $lastModified = filemtime($folder);
    // Do a date comparison here and call your delete if necessary
}

看看这个问答-其中一个可能是重复的谢谢这正是我需要的:)我如何将$lastModified转换为时间格式,并在它大于15天时进行比较?我们不能在这里为您做所有事情-尝试做一些研究,如果您遇到问题,请回来。提示:当我尝试回显日期(“Y-m-d H:I:s”,$lastModified)时,搜索“php比较日期”的堆栈溢出;它给了我2015-07-28 14:02:40 2015-07-28 15:02:01 1970-01-01 01:00:00为什么它给了我3个日期?我在public/uploads/中只有一个文件夹,它位于foreach循环中。尝试转储
$folders
并查看它返回的内容。可能包括
目录。确实在目录中有一个文件,如果我只想获取我循环进入的文件夹的最后一次日期修改,而不接触其中的文件,该怎么办?