Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie plików z folderu
Forum PHP.pl > Forum > PHP
graft
Pomóżcie spece....

Znalazłem w sieci taki kod (cache):
  1. <?php
  2. // Settings
  3. $cachedir = 'cache/'; // Directory to cache files in (keep outside web root)
  4. $cachetime = 3600; // Seconds to cache files for
  5. $cacheext = 'cache'; // Extension to give cached files (usually cache, htm, txt)
  6.  
  7. // Ignore List
  8. $ignore_list = array(
  9. 'domena.com/rss.php',
  10. 'domena.com/search/'
  11. );
  12.  
  13. // Script
  14. $page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Requested page
  15. $cachefile = $cachedir . md5($page) . '.' . $cacheext; // Cache file to either load or create
  16.  
  17. $ignore_page = false;
  18. for ($i = 0; $i < count($ignore_list); $i++) {
  19. $ignore_page = (strpos($page, $ignore_list[$i]) !== false) ? true : $ignore_page;
  20. }
  21.  
  22. $cachefile_created = ((@file_exists($cachefile)) and ($ignore_page === false)) ? @filemtime($cachefile) : 0;
  23.  
  24. // Show file from cache if still valid
  25. if (time() - $cachetime < $cachefile_created) {
  26.  
  27. //ob_start('ob_gzhandler');
  28. @readfile($cachefile);
  29. //ob_end_flush();
  30. exit();
  31.  
  32. }
  33.  
  34. // If we're still here, we need to generate a cache file
  35.  
  36.  
  37. ?>

Działa dobrze i zapisuje do folderu /cache/ pliki, ale robi się bajzel, ponieważ strona ma dużo podstron i przez kilka dni mam wiele tysięcy plików zajmujących kilka GB.

Wymyśliłem sobie, żeby podczas tworzenia pliku 1234.cache usuwać pliki starsze niż $cachetime.
Jaką komendą usuwać? Unlink ale co? I czy w ogóle będzie to optymalne?

Z góry dzięki za podpowiedź...
blooregard
Zobacz tę f-cję:

http://pl.php.net/manual/pl/function.filectime.php

I całą resztę z rodziny file:
http://php.net/file
graft
Czy to będzie ok?

  1. <?php
  2. //-------usuwanie starych-----------------
  3.        $struct = readdir( $cachedir);
  4.        
  5.        while ( false !== ( $sFile = readdir( $struct ) ) )
  6.        {
  7.            if( ( time() - filemtime( $sFile ) ) > $cachetime )
  8.            {
  9.                unlink( $sFile );
  10.            }
  11.        }
  12.        //----------------------------------------
  13. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.