Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 24小时后自动删除文件和包含文件的文件夹_Php_Time - Fatal编程技术网

Php 24小时后自动删除文件和包含文件的文件夹

Php 24小时后自动删除文件和包含文件的文件夹,php,time,Php,Time,我在使用PHP删除文件和包含文件的文件夹时遇到问题。我想在24小时后自动删除服务器上的文件夹和包含文件夹的文件。我正在创建文件夹以保存上载的文档。我也尝试了一些代码,但它不适合我。任何帮助都将不胜感激。谢谢 以下是我尝试的原因:- $path = dirname(__FILE__).'/Docs/'.$foldername; if ($handle = opendir($path)) { while (false !== ($filesss = readdir($handle)))

我在使用PHP删除文件和包含文件的文件夹时遇到问题。我想在24小时后自动删除服务器上的文件夹和包含文件夹的文件。我正在创建文件夹以保存上载的文档。我也尝试了一些代码,但它不适合我。任何帮助都将不胜感激。谢谢

以下是我尝试的原因:-

$path = dirname(__FILE__).'/Docs/'.$foldername;
  if ($handle = opendir($path)) {

    while (false !== ($filesss = readdir($handle))) {
        if ((time()-filectime($path.'/'.$filesss)) < 86400) {  // 86400 = 60*60*24

           unlink($path.'/'.$filesss);


        }
    }
  }
$path=dirname(_文件)'/Docs/。$foldername;
如果($handle=opendir($path)){
while(false!=($filess=readdir($handle))){
如果((time()-filectime($path.'/'.$filess))<86400){//86400=60*60*24
取消链接($path.'/'.$filess);
}
}
}

我尝试了这个代码,但它不是我想要的工作方式。这段代码现在删除我的文件。但是我想在24小时后删除这些文件,也要在24小时后删除包含这些文件的文件夹。请告诉我哪里做错了?

创建Cron文件并编写以下代码

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;
}

您需要检查“现在”与创建文件的时间之间的差异是否超过24小时,不少于。

您在哪里指定了时间?如果不创建Cron文件,还可以再问一个问题吗?Cron时间设置为午夜12:00 AM没有Cron文件,它不会自动执行。可能只是不合格符号?(time()-filectime()<86400为小于24小时的文件获取一个true)它不起作用,正如您所看到的,我的代码中已经有了它。@PranaySute您正在使用
=
检查时差是否等于或大于24小时。哦,好的,我会试试这个,让你知道。!!
if ((time() - filectime($path.'/'.$filesss)) >= 86400)