PHP 自动照片生成图库:删除缩略图

PHP Auto Photo generate Gallery: delete thumbnails

我正在使用 PHP 从图像目录自动生成照片库的图库。

http://davidwalsh.name/generate-photo-gallery

我会修改脚本以添加在用户定义的时间间隔(比如 12 或 24 小时)后清除缩略图文件夹内所有缩略图的功能。

如果您尝试定期清除旧文件,最好使用 cron 作业。

但是,我做了类似的事情,在用户下载或查看文件后,我清除了目录。

在PHP中:

array_map('unlink', glob("tempfiles/*"));

目录位置是临时文件。您可以使用“*.jpg”仅删除图像。

就我个人而言,我不会将 glob 用作代码中的一个错误,您最终可能会删除的不仅仅是指定的文件。如果您对此进行硬编码,您应该是安全的。

使用 cron 作业也是另一个想法,但如果您使用的是共享主机,通常不允许共享主机。但我会推荐一个 cron 作业,它每小时运行一次,并删除时间戳早于的所有文件12/24 小时..

使用 GLOB 的示例脚本

<?php
  $files = glob("thumbnailsfolder/*");
  $now   = time();

  foreach ($files as $file)
    if (is_file($file))
      if ($now - filemtime($file) >= 60*60*24*2) // 2 days
        unlink($file);
?>  

使用 DirectoryIterator - 我的个人偏好

<?php
    foreach (new DirectoryIterator("thumbnailsfolder") as $fileInfo) {
        if ($fileInfo->isDot()) {
            continue;
        }
        if (time() - $fileInfo->getCTime() >= 1*24*60*60) {
            unlink($fileInfo->getRealPath());
        }
    }
?>  

示例取自 The correct way to delete all files older than 2 days in PhP