gpt4 book ai didi

php - 循环检查并删除图像(如果不存在)

转载 作者:行者123 更新时间:2023-11-29 11:38:49 25 4
gpt4 key购买 nike

我正在尝试创建一个循环,检查数据库中文件名的图像是否存在,如果不存在则取消所有图像的链接,因为我在文件夹中有很多重复项,但文件夹为 50gb。我无法逐一检查。

这就是我尝试过的

$id = $_GET['id'];
$sql = "SELECT thumbnail FROM files WHERE id='$id'";
$query = $mysqli->query($sql);
$row = $query->fetch_assoc();
$thumb = $row['thumbnail'];
$records = "../upload/images/";
foreach ($records as $record) {
if (file_exists('../upload/images/'.$thumb)) {}
else {
@unlink('../upload/images/'.$thumb);
}
}

更新

$sql = "SELECT thumbnail FROM filesWHERE id='$id'";
$query = $mysqli->query($sql);
$row = $query->fetchAll();

foreach($sql as $search_result) {
if(file_exists($search_result['thumbnail'])) {
$img_source = ('../upload/images/'.$search_result['thumbnail']);
} else {
@unlink('../upload/images/'.$search_result);
}
}

最佳答案

这就是我所理解的逻辑。检查该文件夹中是否有数据库中不存在的文件,如果有,则将其删除。

$directory = "../upload/images/";
$images = glob($directory . "*.jpg");

foreach($images as $image)
{
$sql = "SELECT thumbnail FROM files WHERE thumbnail =?";
$stmt = $mysqli->prepare($sql);
if($stmt) {
$stmt->bind_param('s', $image);
$stmt->bind_result($result);
$stmt->execute();

$stmt->fetch();

if(!$result) {
if(unlink($image)) {
echo "Image deleted $image <br>\n";
}
}
} else {
echo "Unable to prepare SQL";
}

}

关于php - 循环检查并删除图像(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36162042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com