• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Skrypt php usuwający folder po czasie.

Object Storage Arubacloud
0 głosów
120 wizyt
pytanie zadane 28 stycznia 2020 w PHP przez Mateusz_MM Początkujący (430 p.)
zamknięte 19 maja 2020 przez Mateusz_MM
Witam, czy mógł by ktoś mi wytłumaczyć jak mogę napisać skrypt który usuwa foldery po określonym czasie od utworzenia. Wiem jak działa skrypt który usuwa folder lecz nie mam pomysłu jak zrobić aby działo to po określonym czasie.
komentarz zamknięcia: odpowiedź uzyskana

1 odpowiedź

0 głosów
odpowiedź 28 stycznia 2020 przez Chess Szeryf (76,710 p.)
wybrane 19 maja 2020 przez Mateusz_MM
 
Najlepsza
<body style="background: gray;">
<pre>
<?php
date_default_timezone_set('Europe/Warsaw'); // https://www.php.net/manual/en/timezones.europe.php

const unlinked_folder = './new_folder_to_unlink/'; // slash at the end mean folder, without slash mean file

if(file_exists(unlinked_folder)) {
  $date1 = new DateTime(date("Y-m-d H:i:s", stat(unlinked_folder)[10]));
  $date2 = new DateTime();

// "2020-01-28 13:10:00"

  $interval = $date1->diff($date2);

} else {
  $interval = false;
}

//echo $interval->format("%Y-%M-%D %H:%I:%S %a");

const day_passed = 0;

if($interval !== false && (int)$interval->format("%a") == day_passed) {
  //const hello = 200;
  //CONST deleted_file = 200;
  
  if(is_file(unlinked_folder)) {
    $deleted_file = unlink(unlinked_folder);
  } else {
    $deleted_file = rmdir(unlinked_folder);
  }
  
  printf("Your file %s was %sdeleted successfully.", unlinked_folder, $deleted_file === true ? '' : 'no ');
} else if($interval !== false) {
  printf("Your file %s is still before date %s days to unlink.", unlinked_folder, (string)day_passed);
} else {
  echo 'File not found.';
}
?>
</pre>
</body>

Pod stałą unlinked_folder podstawiasz nazwę swojego folderu lub pliku. Folder kończy się na końcu slashem "/", natomiast plik, nie. Jest tak dlatego, że plik może być chyba bez rozszerzenia i gdy nie ma slasha na końcu, to nie wiadomo, czy to plik, czy folder.

Stała day_passed natomiast, to liczba dni upłynięcia od daty utworzonego pliku/folderu. Umieściłem tam 0, znaczy, to że jeśli plik został utworzony dzisiaj, to 0 oznacza usuń plik/folder, jeśli został utworzony dzisiaj. Gdy wpiszesz tam inną liczbę np. 4, to wtedy plik/folder zostanie usunięty po 4 dniach. 

 

komentarz 28 stycznia 2020 przez Mateusz_MM Początkujący (430 p.)

Właśnie o to mi chodziło, dzięki wielkie za odpowiedź i wytłumaczenie laugh

Podobne pytania

0 głosów
1 odpowiedź 301 wizyt
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 4 lutego 2021 w HTML i CSS przez FilOON Użytkownik (680 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...