effacer des fichiers ayant 1 date de dernier acces >=1jou

Mammouth du PHP | 843 Messages

11 mars 2007, 19:59

salut la compagnie :)

je cherche a effacer tous les fichiers d'un dossier ayant une date superieur ou egale à un jour.

J'ai regarder du coté de pas mal de fonction mais je n'ai pas trouvé de methodes qui me conviennent.

Si quelqu'un avait un petit conseil à proposer.
MERCI D'AVANCE
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 mars 2007, 20:10

L'algo que je mettrais en place :

Code : Tout sélectionner

Pour chaque fichier du dossier Faire Récupérer date dernier accès Si la date de dernier acces se situe avant minuit d'aujourd'hui Alors Effacer le fichier Fin si Fin pour
Récupérer date de dernier acces : fileatime()
Effacer un fichier : unlink()

bon courage ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

12 mars 2007, 18:03

ok. j'ai fait quelque test et je pense faire un peu differement

Code : Tout sélectionner

// on efface les fichier de session périmés de plus de 1 jour $tableau_fichiers_session = array(scandir(session_save_path())); foreach($tableau_fichiers_session as $tableau_fichiers) { echo fileatime($tableau_fichiers); }
mais j'ai le message d'erreur suivant:
Notice: Array to string conversion in C:\Program Files\EasyPHP 2.0b1\www\chart_v1.6\includes\session_ctrl.php on line 63

Warning: fileatime() [function.fileatime]: stat failed for Array in C:\Program Files\EasyPHP 2.0b1\www\chart_v1.6\includes\session_ctrl.php on line 63
je ne voit pas trop comment m'en sortir :-k
si quelqu'un à une idée ;)
merci d'avance

Mammouth du PHP | 843 Messages

12 mars 2007, 18:07

desolé mais j'ai oublier de me connecter avant de repondre donc je reposte le message avec certaine correction :oops:

ok. j'ai fait quelque test et je pense faire un peu differement
 // on efface les fichier de session périmés de plus de 1 jour
$tableau_fichiers = array(scandir($path));
foreach($tableau_fichiers as $var)
{
    echo fileatime($var);
}
mais j'ai le message d'erreur suivant:
Notice: Array to string conversion in C:\Program Files\EasyPHP 2.0b1\www\chart_v1.6\includes\session_ctrl.php on line 63

Warning: fileatime() [function.fileatime]: stat failed for Array in C:\Program Files\EasyPHP 2.0b1\www\chart_v1.6\includes\session_ctrl.php on line 63
je ne voit pas trop comment m'en sortir :-k
si quelqu'un à une idée ;)
merci d'avance
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 505 Messages

12 mars 2007, 18:15

scandir te déjà retourne un tableau indexé... en plus tu en remet un autre...

Une versino plus simple
// Suppose que ton path se termine par /, sinon il faut mettre '/*' 
foreach(glob($path.'*')  as $var) 
echo ...