![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dotknął mnie ciekawy problem. Robię system, którego część ma się zajmować tworzeniem plików z danymi i ich usuwaniem. Powiedzmy, że użytkownik przechowuje pewne dane w plikach na serwerze w swoim katalogu. Pliki te mają swoją "datę ważności" mówiącą o tym czy dany plik jest aktualny i czy ma być używany. Przykład: User tworzy sobie 3 pliki A, B i C - każdy z tych plików ma mieć inny czas życia, na przykład A ma żyć 10 sekund, B - 2 godziny a C - 3 minuty. User poprzez PHP może edytować i odczytywać swoje pliki aż do momentu ich wygaśnięcia - po tym czasie pliki powinny zostać usunięte. Tu pojawia się problem gdzie/jak zapisać dane o czasie życia plików w taki sposób by można było łatwo to sprawdzić i łatwo usunąć wszystkie przestarzałe pliki dostępne w katalogu użytkownika? Powiem tylko, że zapis w bazie danych odpada ze względów założeń projektu (nie mojego) - stąd prośba o pomysły (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
@Pilsener: To jest wariantywna wersja rozwiązania 2, z tym, że powiedz... jak określisz sekundy życia katalogu? Względem czego? Jak już to timestamp jako nazwa katalogu. Problem w tym, że by się dokopać do samego pliku, musiałbyś przechodzić za każdym razem przez strukturę na zasadzie: wejdź do każdego katalogu z dobrym timestamp, sprawdź zgodność nazwy pliku z wzorcem. Zwróć rezultat lub info o jego braku. Zauważ, że zapewne będzie to wolniejsze niż choćby glob("nazwa*.rozszerzenie") w przypadku zastosowania wariantu z timestampem przyrostkowym, względem którego potem porównamy sie z czasem aktualnym. Pamiętajmy, że CRON czyści nam przedawnione pliki, więc ilość znalezionych ze starym timestamp nie będzie duża (o ile takie wystąpią) a skrypt je i tak wyeliminuje jakimś IFem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 01:34 |