Xwab
Форумыnavigate_nextПрограммирование на PHP

Удаление файлов в не базы
Сообщения
Veres

Всем привет! Народ! Подскажите можна написать код который сможет удалить файлы которых нет в базе даных?
А именно в меня например есть папка с фалами и адрес каждого файла записан в базу но парочка адресов файлов удалены с бази а в папке они остались! Их както можна удалить одним кодом(скриптом)?

08 Май 2012, 16:28
TOOZ

SELCET'ом выбераешь из БД массив всех файлов, потом в цикле проверяешь существование файла и наличие его в массиве...

08 Май 2012, 16:57
Veres

TOOZ, а можешь это кодом все написать? Я просто ток учусь в пихе и мало функций знаю!

08 Май 2012, 17:00
TOOZ

Veres, [php:1:cf4c05d068]<?php
$result = mysql_query('SELECT * FROM `files`');
while ( $files_in_db[] = mysql_fetch_array($result)) {}
$dir = '/dir/';
$files_in_dir = scandir($dir);
for($i = 0; $i<count($files_in_dir);$i++)
{
if(!in_array($files_in_dir[$i],$files_in_db)
unlink($dir.$files_in_dir[$i]);
}
?>[/php:1:cf4c05d068]

Как то так наверно

P.S. только надо еще код проверить, а то ты я тебе тут понасоветую))

08 Май 2012, 17:18
Veres

TOOZ, Дак оно удаляет файлы те что в базе!!! А мне нужна чтоб удаляло те файлы что не в базе!  Вернее оно удаляет все файлы в директории!
В меня вот такая база `photos` (`id`, `uid` `attach`)
attach - это адрес фотки где она находится (вида foto/img_1336497371.jpg)!
Вот как мне с папки foto удалить фотки которых нет в базе?

08 Май 2012, 19:13
Romb

Циклом по файлам бегаешь и смотришь есть ли такой файл в базе. Если нету, удаляешь.

09 Май 2012, 10:40
Veres

Дело в том что файлов около 1000 и коло 30 ненужных! Не можно их удалить какимто скриптом?

09 Май 2012, 23:22
MadLion

мож так?
[php:1:19cbfc48dc]
$result = mysql_query('SELECT * FROM `files`');
while ( $f=mysql_fetch_array($result)){
if(!is_file($dir.'/'.$f['name']))unlink($dir.'/'.$f['name']);
}
[/php:1:19cbfc48dc]

10 Май 2012, 3:20
Veres

MadLion, Не удаляет и так:(

10 Май 2012, 21:53
MadLion

Veres, ты как тестил?код прям так написал или подстроил под свой скрипт? если прям так то оно и не будет работать

11 Май 2012, 20:14
Ответить на тему