IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Supprimer les fichiers vieux de plus de deux mois


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut [Système] Supprimer les fichiers vieux de plus de deux mois
    Salut,

    je fait un script d'upload sur mon site, alors je voudrais un code qui permet, en l'éxécutant, de supprimer tout les fichiers sauf les .php, de plus de 2 mois.

    Comment faire?

    Merci

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut,
    voilà qui devrait t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function delete_files($path)
    {
    	$fd = opendir($path);
    	while ($file = readdir($fd))
    	{
    		// Verification des extensions
    		if ($file != '.' && $file != '..' && !preg_match('#\.php$#i', $file))
    		{
    			// Plus de 2 mois
    			if (filemtime($path . '/' . $file) < time() - (3600 * 24 * 30 * 2))
    			{
    				unlink($path . '/' . $file);
    			}
    		}
    	}
    	closedir($fd);
    }

  3. #3
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Donc j'ai essayé, alors j'ai mis ca dans : supimg.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    function delete_files($path)
    {
    	$fd = opendir($path);
    	while ($file = readdir($fd))
    	{
    		// Verification des extensions
    		if ($file != '.' && $file != '..' && !preg_match('#\.php$#i', $file))
    		{
    			// Plus de 2 minutes
    			if (filemtime($path . '/' . $file) < time() - (2))
    			{
    				unlink($path . '/' . $file);
    			}
    		}
    	}
    	closedir($fd);
    }
    ?>
    J'ai mis une image en .jpg et j'ai attendu 5 minutes (car j'ai mis suprimer les images de plus de 2 minutes), jai exécuté supimg.php, et l'image en .jpg n'a pas été supprimé.

    Que faire?

  4. #4
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Il n'y a pas un mélange ?
    time() ramène des secondes et tu cherches un écart de 2 minutes !
    donc déjà time() - 2 doit faire quelquechose comme 2 secondes ?
    filemtime($Fichier) donne une date dans un format timestamp
    qu'il faut donc ensuite convertir en secondes (voir doc) pour pouvoir la comparer !

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Pour commencer il y a une erreur dans la mesure de temps :
    Votre commentaire indique :
    Et dans le code c'est 2 ... secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (filemtime($path . '/' . $file) < time() - (2))
    Pourrait-on avoir l'appel de cette fonction ? Ce script n'agit pas de manière récursive, l'image se trouve donc t-elle bien dans le répertoire qui lui est passé comme premier paramètre ? Avez-vous des messages d'erreur ? (Il a l'air de parfaitement fonctionner).


    Julp.

  6. #6
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Merci de votre aide, mais je vais changer ma facon de faire.
    Alors, je voudrais savoir comment faire pour suprimer un fichier?

    Merci

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Vous avez déjà la réponse dans votre script fonction unlink


    Julp.

  8. #8
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Exact,
    donc si je veux supprimer il faut faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $file = 'http://www.monsite/upload/image.jpg';
    unlink($file);
    ou ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $file = 'image.jpg';
    unlink($file);
    ?

    Merci

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La deuxième solution (par contre $path n'est pas défini dans l'extrait donné) car la suppression ne pourra être effective dans le cas d'une URL.


    Julp.

  10. #10
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Ok, donc je m'en doutais que c'étais la deuxième.

    Merci beaucoup de ton aide.
    J'essaye mon script, donc je met résolu juste après si tout marche :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] supprimer les fichiers plus vieux que 10 jours
    Par big1 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/09/2012, 10h50
  2. forfiles - Supprimer les fichiers vieux de 3 jours
    Par koKoTis dans le forum Scripts/Batch
    Réponses: 34
    Dernier message: 22/11/2011, 19h20
  3. Supprimer les fichiers Excel plus vieux que 7 jours
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2009, 20h05
  4. Supprimer les fichiers vieux de x jours
    Par zounours-69 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 12/06/2008, 15h11
  5. [cmd]Supprimer les fichiers plus vieux que 5jrs ?
    Par byloute dans le forum Windows XP
    Réponses: 1
    Dernier message: 01/02/2007, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo