1. PHP / Говнокод #5366

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    <?php
    include("block/connect.php");
    $result = mysql_query("SELECT name FROM files",$db);
    $myrow = mysql_fetch_array($result);
     
     
    $dir=opendir('./files/');
    $file = readdir ($dir);
     
    $amt=mysql_num_rows($result);
    $cf=0;
    $cfb=$amt;
    $fname[]="";                                                                                    //Заносим в массив fname имена файлов которые находятся в папке
    while ($file = readdir ($dir))  
      {
              if($file!=".."&&$file!=".")
              {
              $fname[$cf]=$file;
              $cf++;
              }
      }                                                                                                             //Занесли
      
    $fdbname[]="";                                                                                  //Заносим в массив fdbname имена файлов которые находятся в папке
    $j=0;
      do
      {
              $fdbname[$j]=$myrow["name"];
              $j++;
      }
      while($myrow = mysql_fetch_array ($result));                  //Занесли
     
      echo "Количество файлов в папке: ".$cf."<br>";
      echo "Количество файлов в базе: ".$cfb."<br><br>";
      
      echo "Файлы в папке:<br>";                    //Выводим массив fname
      for($i=0;$i<=$cf;$i++)
      {
              echo $fname[$i]."<br>";
      }
     
             echo "<br>Файлы в базе:<br>";          //Выводим массив fdbname
      for($i=0;$i<=$cfb;$i++)
      {
              echo $fdbname[$i]."<br>";
      }
      
      //Выводим имена файлов которые есть в папке но нет в базе
      
     echo "<br>Файлы которые есть в папке но нет в базе:";
      for($i=0;$i<=$cf;$i++)
      {
              for($j=0;$j<=$cfb;$j++)
              {
                      if($fname[$i]==$fdbname[$j])
                            {
                                    break;
                            }
     
                            if($j==$cfb)
                            {
                                    echo "<br>".$fname[$i]."___НЕТ в базе";
                                    echo "<br>".$fname[$i]."___УДАЛЁН";
                                    unlink('./files/'.$fname[$i]);
                            }
     
              }
      }
      
      
      
    ?>

    Цитата:
    "Спасибо, но я уже решил проблему самостоятельно, + ещё добавил удалениее тех файлов которых нет в базе Я внес в один массив файлы которые есть в папке, а в другой массив файлы которые есть в базе, потом сравнил два массива...
    можете оценить:"

    Запостил: Sulik78, 23 Января 2011

    Комментарии (8) RSS

    • и в базе мы храним файлы... круто, это же обещанная ФС на основе БД!
      Ответить
      • не как я понял файлы не в базе это в БД хранятся имена файлов и он их переодически сверяет со списком файлов из деректории и если там появляються не нужные удаляет. это наверное типа система защиты от появления не понятных файлов в каталоге :)
        а про array_diff точно не слышал
        Ответить

    Добавить комментарий