X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Finvalideur.php;h=80536ba3b78e8f0b34b67f8ec01d19ad1d82f2c3;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hp=593e8ac3daf38080d383964d0b19c1b2eadd8045;hpb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/ecrire/inc/invalideur.php b/www/ecrire/inc/invalideur.php index 593e8ac..80536ba 100644 --- a/www/ecrire/inc/invalideur.php +++ b/www/ecrire/inc/invalideur.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -88,12 +88,26 @@ function suivre_invalideur($cond, $modif=true) { -// Utilisee pour vider le cache depuis l'espace prive -// (ou juste les squelettes si un changement de config le necessite) -// si $atime est passee en argument, ne pas supprimer ce qui a servi -// plus recemment que cette date (via fileatime) -// retourne le nombre de fichiers supprimes -// http://doc.spip.org/@purger_repertoire +/** + * Purge un répertoire de ses fichiers + * + * Utilisée entre autres pour vider le cache depuis l'espace privé + * + * @uses supprimer_fichier() + * + * @param string $dir + * Chemin du répertoire à purger + * @param array $options + * Tableau des options. Peut être : + * + * - atime : timestamp pour ne supprimer que les fichiers antérieurs + * à cette date (via fileatime) + * - mtime : timestamp pour ne supprimer que les fichiers antérieurs + * à cette date (via filemtime) + * - limit : nombre maximum de suppressions + * @return int + * Nombre de fichiers supprimés +**/ function purger_repertoire($dir, $options=array()) { $handle = @opendir($dir); if (!$handle) return; @@ -105,8 +119,9 @@ function purger_repertoire($dir, $options=array()) { if ($fichier[0] == '.') continue; $chemin = "$dir/$fichier"; if (is_file($chemin)) { - if (!isset($options['atime']) - OR (@fileatime($chemin) < $options['atime'])) { + if ( (!isset($options['atime']) OR (@fileatime($chemin) < $options['atime'])) + AND (!isset($options['mtime']) OR (@filemtime($chemin) < $options['mtime'])) + ) { supprimer_fichier($chemin); $total ++; }