Удалить файлы из папки

Тема в разделе "PHP", создана пользователем bumer3, 5 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. bumer3

    bumer3

    Регистр.:
    10 янв 2008
    Сообщения:
    291
    Симпатии:
    154
    Есть таблица SQL
    есть папка с файлами на серваке
    там файлы типа 1.jpg
    2.jpg и.тд. , где номер - ID в таблице как лучше всего действовать в такой ситуации если нужно удалить все файлы с ИД которых нету записи в БД

    Большое спасибо...
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Если записей в базе много, то сканировать папку по файлам и делать запрос в базу есть/нет и соответственно решать оставлять/удалять.

    Если записей не особо много, можно сразу их все выбрать в массив и далее как написано выше, только сравнивая с массивом, а не БД.
     
    bumer3 нравится это.
  3. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    И при удалении не забыть про права у пхп-скрипта на удаление файлов из каталога сервера.
     
    bumer3 нравится это.
  4. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
    1. Сканируешь директорию (http://www.php.net/manual/en/function.opendir.php)
    2. Копируешь название файла в переменную
    3. Удаляешь из переменной концовку (.jpg), получаешь id
    4. Делаешь запрос на существование id в базе
    5. Если нету такого id, то удаляешь

    PHP:
    $dir "/etc/php5/";

    if (
    is_dir($dir)) {
        if (
    $dh opendir($dir)) {
            while ((
    $file readdir($dh)) !== false) {
                
    $temp str_replace(".jpg"""$file); 
                
    $result=mysql_query("select id from table_name where id = '$temp'");
                if(
    mysql_num_rows($result) == 0)
                    
    unlink($file);                   
            }
            
    closedir($dh);
        }
    }
    Что-то типа того.
     
    bumer3 нравится это.
Статус темы:
Закрыта.