删除文件夹中的特定文件

时间:2014-07-18 16:33:20

标签: php mysql directory

我有一个名为 Added_images 的数据库表。我的表格包含图片名称列表,例如 image-1.jpg,image-2.jpg,image-3.jpg等

我有一个名为 images 的文件夹。它包含所有上传的图像,例如 image-1.jpg,image-2.jpg,image-3.jpg,image-4.jpg,image-5.jpg 图像 - 6.JPG

我想检查文件夹图像中的每张图片对照表Added_images。如果图片在表格中,我想保留它。否则我想删除它。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. 使用scandirglob(或其他内容)获取包含目录中所有文件的数组。
  2. 遍历图像列表,删除数据库中未列出的文件名。
  3. 类似的东西:

    $files = glob('Added_images/image-*.jpg');
    $databaseFiles = getListOfFilesFromDatabase();
    
    foreach ($files as $file) {
        if (!in_array($file, $databaseFiles)) {
            unlink($file);
        }
    }
    

    显然,您应该在使用前仔细测试,以防它删除不应该的图像......

    修改

    你可以更加努力地思考这个问题:

    $files = glob('Added_images/image-*.jpg');
    $databaseFiles = getListOfFilesFromDatabase();
    
    $filesToDelete = array_diff($files, $databaseFiles);
    array_map('unlink', $filesToDelete);