2012-01-15 4 views
1

Я пытаюсь удалить файлы (файлы изображений) в папке, только если они не присутствуют в конкретной таблице базы данных.Удалить файлы, которые не находятся в таблице mySQL

Как проверка имен файлов, и если они присутствуют в таблице, это нормально, но если их не удалять.

Любые идеи, как это сделать?

+0

Что у вас есть в вашем столе? полные пути изображений? –

+0

Что у вас в БД? имена файлов, а также содержимое файла? –

ответ

3

Просто выберите все изображения, которые не следует удалять из базы данных и просматривать все файлы.

$result = mysql_query("SELECT filename FROM no_delete"); 
while($row = mysql_fetch_assoc($result)) { 
    $do_not_delete[] = $row['filename']; 
} 

foreach(glob("*") as $filename) { 
    if (!in_array($filename, $do_not_delete)) { 
     //delete them 
    } 
} 
0

Я хотел бы подойти к этому, написав скрипт, который принимает список всех файлов в каталоге, сохраняет их в массив (так как вы используете PHP), а затем один на один запросов к базе данных, чтобы увидеть, если они существуют в таблице.

Если это так, то ничего не делайте, если они не удаляют его.

Было бы также полезно зафиксировать в файле журнала имена тех, которые вы удалили только для истории.

Вы можете запустить это в командной строке с помощью curl и даже настроить его как задание chron (если вы работаете в Linux) или запланированное задание (на окнах), чтобы оно запускалось автоматически.

Смежные вопросы