如何根据php中的创建日期从目录中删除文件?

2024-03-18

我有一个存储 html 文件的缓存文件夹。它们会在需要时被覆盖,但很多时候,很少使用的页面也会缓存在其中,最终会占用空间(5 周后,驱动器已满,有超过 270 万个缓存文件)。

循环遍历包含数十万个文件的目录并删除超过 1 天的文件的最佳方法是什么?


我认为您可以通过使用 readdir 循环遍历目录并根据时间戳删除来解决此问题:

<?php
$path = '/path/to/files/';
if ($handle = opendir($path)) {

    while (false !== ($file = readdir($handle))) { 
        $filelastmodified = filemtime($path . $file);
        //24 hours in a day * 3600 seconds per hour
        if((time() - $filelastmodified) > 24*3600)
        {
           unlink($path . $file);
        }

    }

    closedir($handle); 
}
?>

The if((time() - $filelastmodified) > 24*3600)将选择早于 24 小时的文件(24 小时乘以每小时 3600 秒)。如果您需要几天,则对于一周以上的文件,它应该读取例如 7*24*3600。

另外,请注意filemtime返回文件的最后修改时间,而不是创建日期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据php中的创建日期从目录中删除文件? 的相关文章

  • method_存在于父类php中

    我正在尝试使用 php 函数 method exists 但我需要检查该方法是否存在于对象的父类中 so class Parent public function myFunction class Child extends Parent
  • php 中接口的用途是什么?

    如果我在 PHP 中定义一个接口 以及一个创建该接口实例的工厂类 有什么方法可以强制客户端代码仅使用该接口而不使用底层具体类 根据我的理解 客户也可以实际使用底层类中的任何公共函数 字段 这是一个例子
  • WordPress 计划事件未在设定时间触发

    在 WordPress 中 我正在创建一个插件 用于向用户发送电子邮件 为此 我使用 WordPresscron工作 所以基本上它要做的就是每小时向用户发送电子邮件 所以我的代码看起来像这样 public function construc
  • 通过 AJAX jquery 更改表格背景颜色?

    设想 当我的网页加载时 自动搜索单元格已由用户输入并且具有价值 如果已输入 表格背景颜色将为红色 否则为绿色 假设该表尚未输入 桌子背景绿色是这样的 和表的源代码 table width 1023 height 200 border 1 t
  • 是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

    我想在一个根 服务器 下托管多个基于 Symfony2 的网站 是否可以共享 symfony 自己的文件 供应商等 有人知道教程吗 管理起来困难吗 AFAIK Symfony 安装大约有 600MB 我不想以冗余方式保存它 我看起来确实有可
  • Laravel:运行队列:在 Windows Azure Web App 上连续监听

    我觉得问这个问题有点傻 但我似乎无法在互联网上找到这个问题的答案 经过几个小时的搜索后 我发现在 Linux 服务器上 您使用 Supervisor 在您的网站上连续运行 php artisanqueue listen 无论有或没有守护进程
  • 上传非常大的文件(>5GB)

    我需要你的帮助 我想用 HTML JQuery 和 PHP 创建一个上传脚本 是否可以编写一个可以上传非常大的文件 gt 5 GB 的脚本 我已经尝试使用 FileReader FormData 和 Blobs 但即使使用这些 我也无法上传
  • 用于添加和删除客户名称的 Web 表单出现问题

    我正在尝试创建一个 Web 表单 其中列出了所有客户 然后为您提供一个文本字段 旁边有一个按钮 您可以在其中添加客户 然后它应该显示客户列表 旁边有删除按钮 您可以单击该按钮从数据库中删除客户 我正在让它发挥作用 对于初学者来说 它会回显
  • 某些表格后的分页符

    我的问题是 我有一个页面 其中包含几个要打印的 html 表格 有些表有很多行 有些则没有 我想要做的是将第一个和第二个表 大表 打印在单独的页面中 其余表 小表 每页打印两个 如何在我想要的位置放置分页符 我试过 但这会在每个表格后面添加
  • Laravel 6:尚未设置外观根

    经过一段时间的努力 我已将我的网站从 Laravel 5 8 迁移到 Laravel 6作曲家更新我在网站上遇到此错误 并且仅使用命令PHP工匠 PHP Fatal error Uncaught RuntimeException A fac
  • 使用 Laravel Fluent 查询生成器从多个表中进行选择

    我正在重写一些 PHP MySQL 来与 Laravel 一起使用 我想做的一件事是使数据库查询更加简洁使用 Fluent 查询生成器 http laravel com docs database fluent但我有点迷失 SELECT p
  • 更新查询增量字段加上 1 codeigniter 函数 [重复]

    这个问题在这里已经有答案了 我想在 codeigniter 项目中将字段值增加到当前值加 1 所以 我做了一个功能 但它不起作用 我的职能是 function increse field by 1 table name fieldToInc
  • PHP mail() 函数发送电子邮件,但需要 10 多分钟才能显示

    因此 我的用户从手机上的 Android 应用程序进行注册 注册成功后 我会触发一封邮件发送到注册的电子邮件地址 其中包含来自我的 PHP 脚本的激活密码 这是我使用的代码行 非常简单 mail to subject message hea
  • 返回早期概念在 PHP 中有何用处

    我已经在以下链接中了解了最佳实践https pear php net manual en standards bestpractices php https pear php net manual en standards bestprac
  • 重定向到另一个文件夹

    我读了这个 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htacces rewrite to redirect root url to subdir
  • 正则表达式:如何表达没有下划线的 \w

    有没有简洁的表达方式 w but without 即 w 中包含的所有字符 除了 我问这个是因为我正在寻找最简洁的方式来表达域名验证 域名可以包含小写和大写字母 数字 句号和破折号 但不能包含下划线 w 包括以上所有内容 加上下划线 那么
  • 如何将事件插入为 - Out Office

    我目前正在使用 Google Calendar API 并尝试在我的谷歌日历中插入新的 外出 事件 我使用以下代码插入事件 client getClient service new Google Service Calendar clien
  • 如何从 php 中的 .doc 文件获取页面数,以下代码适用于 .docx 而不是 .doc

    此代码工作 docx 格式文档 但我需要 doc 格式文档计数 php 中的页数 function CountPagesDocx filename zip new ZipArchive if zip gt open filename tru
  • Laravel 更新雄辩事件:获取数据

    我一直在读有关雄辩事件的文章 与模型的每次交互都有一个事件 创建 创建 更新 更新 保存 保存 删除 删除 恢复 恢复 我想知道模型更新后的数据以及之前的数据 是否可以 因为文档没有太多关于如何使用这些事件的信息 您正在寻找getDirty
  • Woocommerce 中的 Ajaxify 标头购物车项目计数

    我正在为 WordPress 创建一个自定义 woocommerce 集成主题 我在顶部有一个 blob 显示购物车中的商品总数 我想使用 Jquery 更新此 blob 无需重新加载页面 我能够通过获取购物车中的当前数量来增加商品数量bl

随机推荐

  • 如何在 Eclipse 中启用 TODO/FIXME/XXX 任务标签?

    在我使用 Eclipse 的这些年里 直到现在我才知道 TODO FIXME XXX 注释标签应该出现在任务列表中 显然 默认情况下这是禁用的 因为只要我使用 Eclipse 我就一直在使用这些标签 而且我从未见过其中一个出现在任务列表中
  • C 中的嵌入式 perl、perlapio - 与 STDIO 的互操作性

    我刚刚意识到 PerlIO 层似乎不仅仅 或多或少 轻松地包装 stdio h 函数 如果我尝试使用通过以下方式解析的文件描述符PerlIO stdout and PerlIO fileno 对于 stdio h 中的函数 这会失败 例如
  • AutoFixture 和私有财产

    我可以指导吗汽车夹具 https github com AutoFixture还可以填充私有属性 并用特定属性进行注释 例如Ninject Inject 所有类别中 来源似乎只扫描公共属性 1 https github com AutoFi
  • 动态数组 - 如何增加数组的大小?

    我正在从文件中读取数字 然后尝试将它们添加到数组中 我的问题是如何增加数组的大小 例如 我认为也许可以这样做 include
  • 通过 CLI 更新 AWS API Gateway 资源策略的语法是否正确?

    我正在尝试通过 CLI 更新 API 网关实例上的资源策略 但我似乎找不到正确的 JSON 语法 在文档中 它说使用 补丁操作 据我了解 它需要一串 JSON 来表示策略 我尝试过缩小 JSON 转义 JSON 单引号 无引号 但似乎都不起
  • 如何卸载附加场景?

    我正在制作一款坦克战游戏 每轮后都会随机生成新的关卡 在我的游戏管理器中 我试图让回合从随机范围索引中的附加加载场景开始 然后以卸载场景结束 然后加载到新的随机场景中 然而 我所做的每一次尝试都会导致某种形式的错误 我一直被引导到 Load
  • 我如何在 Heroku 上安排“每周”工作?

    我在 Heroku 上部署了一个 Rails 应用程序 并使用 Heroku 调度程序插件成功处理日常工作 现在我想要一个每周工作 但调度程序附加组件不允许我每周选择 关于我如何实现这一目标的任何建议 我过去曾尝试使用 rufus sche
  • 折线(路线)悬停时的工具提示

    我已经在地图上标出了路线 使用一些坐标生成的路线 其中包含附加信息 速度 我希望当路线悬停时 会出现一个工具提示并显示这些坐标处的信息 速度 我很困惑如何显示速度的工具提示
  • 领域驱动设计中的 WCF 序列化和值对象模式

    Eric Evans 所著的 领域驱动设计 一书描述了称为值对象的模式 值对象的重要特征之一是它是不可变的 作为一个例子 我有一个值对象 Clinic 其中must有名字和id 为了使其成为值对象 我不提供名称和 ID 的设置器 另外 为了
  • 如何在sql server中的列中存储多个值

    我正在创建职位申请 在我的第一个表中 列是这是我的主表 ID Position jobDescription minExp maxExp LastDate InterviewDate Project HiringManager interv
  • 禁止 GCC 下的不兼容指针类型特定警告

    在 GCC 下的代码中 我收到了很多这两种类型的警告 warning passing argument 1 of foo from incompatible pointer type and warning assignment from
  • Android加载动画

    我正在寻找一些有关如何在 android 中创建加载动画的信息 是否可以创建这个动画 我可以在一个线程中调用这个动画并在另一个线程中结束 我正在寻找这个 尝试下面的代码 显示进度对话框 ProgressDialog mDialog new
  • .NET 泛型术语 - 开放/封闭、未绑定/构造

    NET 泛型术语有点含糊 更糟糕的是 它似乎在不同的来源中被模糊且不同地使用 基本上不清楚的是这 4 个术语之间的关系 与 类型 相关 open closed unbound 建 我明白那个List
  • 每个面有 K 个顶点的 3D 点的三角测量

    我正在使用 Three js 我有一个收藏3D点 x y z 和面的集合 一张脸是由K points 它可以是凸的 也可以是凹的 我在 Three js 文档中找不到任何可以帮助我的内容 一种解决方案可能是对这些形状进行三角测量 但到目前为
  • 如何在 swift 中检查两个实例是否具有相同的类/类型

    我知道我可以检查 Swift 中 var 的类型is if item is Movie movieCount 1 else if item is Song songCount 1 但我如何检查两个实例是否具有相同的类 以下不起作用 if i
  • Atlas 上的 Mongoose 与 ReplicaSet

    我在 MongoDB Atlas 上有一个副本集 这是我的 mongo shell 连接字符串 可以完美连接 mongo mongodb MY SERVER shard 00 00 clv3h mongodb net 27017 MY SE
  • 如何利用 .woff 字体的浏览器缓存?

    在 PageSpeed Insights 中 我不断看到利用浏览器缓存我正在使用的特定图标集 字体的消息 iconFont woff 2 天 我已将 htaccess 设置为 EXPIRES CACHING
  • 当我必须使用 Intents 时,createChooser 是什么?我可以用这个方法做什么?

    我一直在查看 stackoverflow 但我没有找到关于什么是 createChooser 的定义以及为什么我可以使用它以及在哪种情况下最好使用它 提前致谢 例如 您的应用程序中有一个共享图片选项 您定义这样的意图 Intent picM
  • 在 docker 微服务设置中运行 django rq 的正确方法

    我猜我的 docker 容器设置有问题 因为每次我从 django 运行任务时 我都会在 docker 容器输出中看到ps aux创建了新进程python mange py rqworker mail而不是使用现有的 请参阅截屏视频 htt
  • 如何根据php中的创建日期从目录中删除文件?

    我有一个存储 html 文件的缓存文件夹 它们会在需要时被覆盖 但很多时候 很少使用的页面也会缓存在其中 最终会占用空间 5 周后 驱动器已满 有超过 270 万个缓存文件 循环遍历包含数十万个文件的目录并删除超过 1 天的文件的最佳方法是