我有一个名为 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。如果图片在表格中,我想保留它。否则我想删除它。我怎样才能做到这一点?
答案 0 :(得分:1)
scandir
或glob
(或其他内容)获取包含目录中所有文件的数组。类似的东西:
$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);