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] Suppression d'un groupe de fichier


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [Système] Suppression d'un groupe de fichier
    Bonjour à tous,

    Je vais essayer de vous expliquer mon problème de la maniére la plus claire possible.

    J'utilise un systeme de cache pour mon site, il est basé sur le tutoriel de Docteur Night que beaucoups d'entre vous connaisse. A part quelques petites modification les fonctions sont identiques.

    A chaque fois que du contenu est ajouté je supprime le fichier ou les fichiers caches concernés, le site sais alors qu'il faut le mettre à jour puisque il ne le trouve plus.

    Jusque la tout va bien, mais arrivé à la mise en cache du forum l'affaire se complique quelque peut, a chaque fois qu'un message est posté je doit supprimer tous les caches du forum en question (1 par page).

    Un petit exemple pour vous aidez à comprendre, si mon forum contient 8 pages il faut supprimer.

    donnees_forum_1_page_1.cache
    donnees_forum_1_page_2.cache
    donnees_forum_1_page_3.cache
    donnees_forum_1_page_4.cache
    donnees_forum_1_page_5.cache
    donnees_forum_1_page_6.cache
    donnees_forum_1_page_7.cache
    donnees_forum_1_page_8.cache

    Actuellement j'utilise une boucle pour faire sa qui ressemble a sa:

    // On fait une boucle pour supprimer tous les caches des differentes pages
    $page_a_supprimer=1;
    while($page_a_supprimer <= $nombre_pages)
    {
    destroy_cache('../../', 'sujets_forum_'.$forum.'_page_'.$page_a_supprimer);
    $page_a_supprimer++;
    }


    Cela marche très bien mais je ne suis pas dutout satisfer pour deux raison, la premiere est d'utiliser une boucle et la deusieme qui est la plus importante c'est que dans certaine page je doit lancer une requete SQL rien que pour recuperer le nombre de pages du forum pour savoir quand la boucle doit s'arreter.

    C'est un peut du bouffage de ressource pour moi cet assemblage, je creer donc ce topic pour savoir si vous connaissais une fonction capable de supprimer un ensemble de fichiers selon une expression dans leur nom.

    Ce que je voudrais pouvoir faire c'est dire:

    Supprime tous les fichiers dont le nom contient:
    sujets_forum_1_page_

    Tous les fichiers caches serait donc supprimé en evitant la boucle et la requete.

    Merci beaucoups.

  2. #2
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Points : 808
    Points
    808
    Par défaut
    j'ai bien une idée pour toi même si l'utiliser changerait pas mal ta structure mais bon, c'est à toi de voir...

    l'idée est de mettre tes fichiers de cache dans des dossiers dont ton code reconnaîtra les noms, ainsi plus besoin de chercher après une expression dans le nom de tes fichiers, sinon, tu peux utiliser des regex, mais me la demande pas, je suis qu'un noob, donc...

    mais dans un cas comme dans l'autre, j'ai trouvé ceci il y a quelques jours, en le bidouillant un peu, ça pourrait en tous cas te mener au résultat voulu:

    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
    function clearFolder($folder)
    {
            // 1 ouvrir le dossier
            $dossier=opendir($folder);
            //2)Tant que le dossier n'est pas vide
            while ($fichier = readdir($dossier))
            {
                    //3) Sans compter . et ..
                    if ($fichier != "." && $fichier != "..")
                    {
                            //On selectionne le fichier et on le supprime
                            $Vidage= $dossier.$fichier;
                            unlink($Vidage);
                    }
            }
            //Fermer le dossier vide
            closedir($dossier);
    }
    bon amusement...

Discussions similaires

  1. [Système] Suppression de fichier "sécurisé"
    Par meyogi84 dans le forum Langage
    Réponses: 2
    Dernier message: 24/07/2007, 14h07
  2. [Système] Suppression de fichiers passés X jours
    Par HwRZxLc4 dans le forum Langage
    Réponses: 9
    Dernier message: 04/05/2006, 12h12
  3. [système]suppression des fichiers
    Par gilleski2010 dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/02/2006, 14h02
  4. Suppression de lignes dans un fichier sous dos
    Par ducho dans le forum Windows
    Réponses: 2
    Dernier message: 16/05/2005, 10h20
  5. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36

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