PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
DimkaG
Отправлено: 16 Апреля, 2016 - 16:44:45
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Все привет.
Сделали мне скрипт по поиску и удалению папок и файлов по заданной дате на сервере, но не довели до ума, а конкретно нужно чтобы поиск и удаление происходило не только в текущей папке, а ещё и ВНУТРИ её подпапок. Пример

ПАПКА 1
-- ПОДПАПКА2
-- ПОДПАПКА3
-- ПОДПАПКА4


Сейчас происходит удаление только внутри ПАПКА1 а подпапки и внутри них файлы не удаляются и не проверяются.. помогите доделать..

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. function removeDir ($dir)
  4. { $d=opendir($dir);  
  5. while(($entry=readdir($d))!==false) {
  6. if ($entry != "." && $entry != "..") {
  7. if (is_dir($dir."/".$entry)) {  removeDir($dir."/".$entry);  }
  8. else {  unlink ($dir."/".$entry);  } } }
  9. closedir($d);  
  10. rmdir ($dir);  
  11. }
  12.  
  13. $data1='';
  14. $data2='';
  15. $file='';
  16. $mask='';
  17. $put='';
  18. $folder='';
  19. $fileche='';
  20. $folderche='';
  21. $outpu='';
  22. $vsego=0;
  23.  
  24. if($_GET['file']=='true'){$fileche='checked="checked"';}else{$fileche='';}
  25.  
  26. if($_GET['folder']=='true'){$folderche='checked="checked"';}else{$folderche='';}
  27.  
  28. if (!empty($_GET['dataout']) & !empty($_GET['file']) &  !empty($_GET['folder'])){
  29. if($_GET['file']=='true' | $_GET['folder']=='true'){
  30.  
  31. $put=$_GET['put'];
  32. if (trim($_GET['datain'])>''){$data1=$_GET["datain"];} else {$data1='2.2.2000';}
  33. if (trim($_GET['folder'])=='true' ){$mask='';}else{$mask=$_GET["mask"];}
  34. $data2=$_GET["dataout"];$file=$_GET["file"];$folder=$_GET["folder"];
  35. if($file=='true'){
  36. if($mask>''){
  37. foreach (glob(__DIR__.$put.$mask) as $filename) {
  38. if(strtotime($data1)<=strtotime(date ("d.m.Y", filemtime($filename))) & (strtotime($data2)>=strtotime(date ("d.m.Y", filemtime($filename))))){
  39. $outpu.="$filename размер " . round(filesize($filename)/1024,3)." Кб  Дата ". date ("d.m.Y", filemtime($filename))."\n";
  40. $vsego+=round(filesize($filename)/1024,3);
  41. unlink($filename);
  42. }}  
  43. }else{
  44. foreach (glob(__DIR__.$put."*.") as $filename) {
  45. if(strtotime($data1)<=strtotime(date ("d.m.Y", filemtime($filename))) & (strtotime($data2)>=strtotime(date ("d.m.Y", filemtime($filename))))){
  46. $outpu.="$filename размер " . round(filesize($filename)/1024,3)." Кб Дата ". date ("d.m.Y", filemtime($filename))."\n";
  47. $vsego+=round(filesize($filename)/1024,3);
  48. unlink($filename);
  49. }
  50. }}}
  51.  
  52. if($folder=='true'){
  53. foreach (glob(__DIR__.$put) as $filename) {
  54. if(strtotime($data1)<=strtotime(date ("d.m.Y", filemtime($filename))) & (strtotime($data2)>=strtotime(date ("d.m.Y", filemtime($filename))))){
  55. $outpu.="$filename размер " . round(filesize($filename)/1024,3)." Кб Дата ". date ("d.m.Y", filemtime($filename))."\n";
  56. $vsego+=round(filesize($filename)/1024,3);
  57. removeDir($filename);
  58. }
  59. }  
  60. }
  61. if( $outpu>''){
  62. file_put_contents('log.txt', $outpu."\n Всего удалено ".$vsego."Kb", FILE_APPEND);}
  63. }}
  64. ?>
  65. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  66. <html xmlns="http://www.w3.org/1999/xhtml">
  67. <head>
  68. <title>удалялка</title>
  69. <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  70. <link rel="stylesheet" type="text/css" href="cal.css" />
  71. <script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
  72. <script  type="text/javascript" src="/cal.js"></script>
  73. <script type="text/javascript">
  74. $(document).ready(function(){
  75. $('#calendarin').simpleDatepicker();  // Привязать вызов календаря к полю с CSS идентификатором #calendar
  76. $('#calendarout').simpleDatepicker();  // Привязать вызов календаря к полю с CSS идентификатором #calendar
  77. });
  78. </script>
  79. </head>
  80. <body>
  81. <p style='display:inline;'>Файлы: <input type='checkbox'<?echo $fileche;?>  id='fff'/></p>
  82. <p style='display:inline;'>Папки: <input type='checkbox' <?echo $folderche;?>  id='ppp'/></p>
  83. </br></br>
  84. <p style='display:inline;'>ОТ  <input id="calendarin" placeholder="01.01.2000" name="date" value="<?echo $data1;?>" type="text"/></p>
  85. <p style='display:inline;'>- ДО <input id="calendarout" placeholder="10.12.2016" name="date" value="<?echo $data2;?>" type="text"/></p>
  86. </br></br>
  87. <p style='display:inline;'>Расширение  <input id="mask" value="<?echo $mask;?>" placeholder="*.jpg"  type="text"/></p>
  88. </br></br>
  89. <p style='display:inline;'>Путь   <?echo __DIR__;?><input id="put" name="date"  placeholder="/myfolder/" value="<?echo $put;?>" type="text"/></p>
  90. </br></br>
  91. <input id="send"  value="Удалить" type="button"/>
  92. </br></br>
  93. <textarea style='display:inline;width:100%;height:200px;' id='cnsl1'><?echo $outpu."\nВсего удалено ".$vsego."Kb";?></textarea>
  94. </body>
  95. </html>
  96. <script>
  97. if(document.getElementById("ppp").checked){ $("#mask").attr("disabled",true);}else{ $("#mask").removeAttr("disabled");}
  98. $('#ppp').click(function(){if(this.checked){ $("#mask").attr("disabled",true);}else{ $("#mask").removeAttr("disabled");}})
  99. $('#send').click(function(){
  100. a1=document.getElementById("fff").checked;
  101. a2=document.getElementById("ppp").checked;
  102. a3=document.getElementById("mask").value;
  103. a4=document.getElementById("put").value;
  104. b1=document.getElementById("calendarin").value;
  105. b2=document.getElementById("calendarout").value;
  106. if (confirm("Вы уверены?")) {
  107. document.location.href='?file='+a1+'&folder='+a2+'&mask='+a3+'&put='+a4+"&datain="+b1+"&dataout="+b2;
  108. }
  109.  
  110.  
  111. })
  112. </script>
  113.  
 
 Top
DimkaG
Отправлено: 16 Апреля, 2016 - 20:44:31
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Народ, хелп... очень нужно, помогите дописать код!
 
 Top
Viper
Отправлено: 16 Апреля, 2016 - 20:55:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4565
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DimkaG пишет:
Народ, хелп... очень нужно, помогите дописать код!
я конечно всё прнимаю, но в том еб*ном пиздеце, без какого-либо форматирования, никто разбираться не будет. Приложите лучше файл php.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pinkya_rabbit
Отправлено: 16 Апреля, 2016 - 21:02:58
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Апр. 2016  
Откуда: Minsk перебираюсь в Питер


Помог: 1 раз(а)




Я не понимаю в чём проблема загуглить ответ. У меня на это 30 секунд ушло. Откройте пример и смотрите. Например вот. А в том что у вас тут сброшено куска кода не хватает. Если словами объяснить чего не хватает нужно написать функцию сканирования разделов которая работает по принципу:
1. просканировала каталог файлы выбрала
2. каталоги выбрала
3. все пути к файлам записала в массив
4. для каждого каталога внутреннего функция повторилась
5. функция повторяется до тех пор пока находятся каталоги. то есть нужен второй массив в который заносятся пути каталогов. если массив пустой то ничего не происходит. если нет - рекурсия функции по первому из оставшихся не проверенных каталогов

(Отредактировано автором: 16 Апреля, 2016 - 21:06:48)

 
My status
 Top
DimkaG
Отправлено: 16 Апреля, 2016 - 21:06:23
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Viper пишет:
DimkaG пишет:
Народ, хелп... очень нужно, помогите дописать код!
я конечно всё прнимаю, но в том еб*ном пиздеце, без какого-либо форматирования, никто разбираться не будет. Приложите лучше файл php.


прикрепил
(Добавление)
Pinkya_rabbit пишет:
Откройте пример и смотрите. Например вот.
9 листов простотрел вообще не то! Нужно просто добавить в код, чтобы скрипт искал и подпапки...
(Добавление)
Pinkya_rabbit пишет:
нужно написать функцию сканирования разделов которая работает по принципу
вот видимо это и прошу.
Скачать файл: cal.php
Скачан раз: 57
 
 Top
DimkaG
Отправлено: 17 Апреля, 2016 - 00:16:46
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




ну что, никто не сможет помочь*?
 
 Top
DimkaG
Отправлено: 17 Апреля, 2016 - 14:30:34
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Есть толковые ребята кто в состоянии допилить скрипт**?*
(Добавление)
Viper пишет:
Приложите лучше файл php.
файл посмотрели?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB