За последние 24 часа нас посетили 17725 программистов и 1659 роботов. Сейчас ищут 937 программистов ...

Приколы при удолении файлов

Тема в разделе "PHP для новичков", создана пользователем zzzVolkzzz, 29 апр 2009.

  1. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    Здраствуйте, у меня такая проблема, не могу удолить файлы из папки.
    Есть папка в которую записывають кешированные файлы. При внесении изменений в БД надо удолить все кеш файлы для того чтоб эти изменения отобразились.

    Есть функция, я её немного подправил дляя того чтоб было нагляднее...

    PHP:
    1.  
    2. <?php
    3. protected function delete_cache() {
    4.          global $main_path;
    5.          $folder = $main_path.'/cache/';
    6.          $cache_dir = opendir($folder);
    7.          while ($subfile = readdir($cache_dir)){
    8.                  if ($subfile == '.' or $subfile == '..') continue;
    9.                  
    10.                  echo $folder.''.$subfile;
    11.                  
    12.                  if (is_file($subfile)) {
    13.                     unlink($folder.''.$subfile);
    14.                     echo ' - file<br>';
    15.                  } else {
    16.                     echo ' - not_file<br>';
    17.                  }
    18.          }
    19.          closedir($cache_dir);
    20.     }
    21. ?>
    22.  
    то есть она те только отображает файлы, но так же пропимывает их названия и значение функции is_file()

    вот что она вывела

    Код (Text):
    1.  
    2. Z:/home/localhost/www/cache/12_Springs_Altai_Russia.jpg - not_file
    3. Z:/home/localhost/www/cache/Anna_Russia.jpg - not_file
    4. Z:/home/localhost/www/cache/Chelyabinsk_Russia.jpg - not_file
    5. Z:/home/localhost/www/cache/Dombay_Russia.jpg - not_file
    6. Z:/home/localhost/www/cache/Ekaterinburg_Russia.jpg - not_file
    7. Z:/home/localhost/www/cache/f7beb9d9b187de4a3e9b56a6a73b7ba1 - not_file
    8. Z:/home/localhost/www/cache/Ferapontovo_Russia.jpg - not_file
    9. Z:/home/localhost/www/cache/Karelia_Russia.jpg - not_file
    10. Z:/home/localhost/www/cache/Katun_River_Altai_Russia.jpg - not_file
    11. Z:/home/localhost/www/cache/Kazan_Russia.jpg - not_file
    12. Z:/home/localhost/www/cache/Kizhi_2_Russia.jpg - not_file
    13. Z:/home/localhost/www/cache/Kizhi_Russia.jpg - not_file
    14. Z:/home/localhost/www/cache/Kolomna_Russia.jpg - not_file
    я там просто файлов для проверки накидал...

    Вопрос почему так? Почему is_file() возвращает false???
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Не находите ничего общего:

    PHP:
    1. <?php
    2.  
    3. echo $folder.''.$subfile;
    4.  
    5. // .....
    6.                
    7. if (is_file($subfile)) {
     
  3. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    Объясните пожалуста что вы имеете ввиду. echo $folder.''.$subfile; я добавил для наглядности, без него вункция тоже не работала.
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Попробуйте
    Код (Text):
    1. if (is_file($subfile)) {
    Заменить на
    Код (Text):
    1. if (is_file($folder.$subfile)) {
     
  5. zzzVolkzzz

    zzzVolkzzz Активный пользователь

    С нами с:
    10 апр 2009
    Сообщения:
    26
    Симпатии:
    0
    Спасибо, помогло! Я просто не знал что функции с файлами работают только с полными путями... Теперь буду знать! :D