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 :

[Répertoire] Chargement multiple de fichiers PHP d'un Dossier + Extraction TAR


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Points : 61
    Points
    61
    Par défaut [Répertoire] Chargement multiple de fichiers PHP d'un Dossier + Extraction TAR
    Bonsoir à tous !

    Voila déja un petit bout de temps que je cherche une solution à mon problème, sans succès, je viens donc vous demander un petit coup de pouce

    Pour résumer la situation :

    J'ai un dossier avec une multitude de fichier .php (+ de 2000), ces fichiers contiennent un tableau dynamique sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $test = array(
     
    terme1		=>  'xxx',
    terme2		=>  'yyy',
    terme3		=>  'zzz'
    );
    J'aimerais donc parcourir le dossier entier pour exporter les informations de chaques fichier PHP, pour les insérer dans ma base de données, contenant donc les 3 champs : terme1 / terme 2 / terme 3

    Cependant je bloque au niveau du chargement successif des fichiers PHP, je ne sais pas quel méthode utiliser pour ouvrir le fichier, récupérer les variables, les insérer dans la base, puis enfin fermer le fichier et passer directement au suivant.

    Merci à tous pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    il faut que tu parcours recursivement l'arborescence de tes dossiers.Je les deja fait perso pour creer un album photo.

    J'ai choper un bout de code bien commente sa peut 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <?php
    /*
    
    --------------------------------------------------------
    
    Parcours récursif d'un Répertoire
    
    --------------------------------------------------------
    
    
    */
     
    function parcoursRep($path,$i=1)
     
    {
     
      $folder[$i] = dir($path);
     
      while($fichier = $folder[$i]->read())
     
        {
     
          // On ajoute une tabulation plus ou oins grande en fonction du niveau
     
          for($z=1;$z<=$i && $fichier != "." && $fichier != "..";$z++)
     
            echo "&nbsp;&nbsp;";
     
          // On vérifie si il s'agit d'un repertoire
     
          if(is_dir($path."/".$fichier) && $fichier != "." && $fichier != "..")
     
            {
     
              // Si oui, on ecrit le nom du repertoire
     
     
              echo "| <b>".$fichier."</b><br>\n";
     
              // On parcours le nouveau repertoire
     
              $sav_path = $path;
     
              $path .= "/".$fichier;
     
              parcoursRep($path,($i+1));
     
              $path = $sav_path;
     
     
            }
     
          else if($fichier != "." && $fichier != "..")
     
            {
     
              // Si non, on écrit le nom du fichier
     
              echo "| <a href='".$path."/".$fichier."'>".$fichier."</a><br>\n";
     
     
            }
     
        }
     
      $folder[$i]->close();
     
    }
     
    ?>
     
     
     
    <?
     
    /*
    
    Exemple d'appel de la fonction
    
    
    */
     
    $path= ".";  // Parcours du repertoire courant (sans / a la fin)
     
    parcoursRep($path);
     
    ?>
    De cette maniere si tu met le chemin root de ton projet web il va parcourir L'INTEGRALITE de tout tes fichiers de ton projet.

    Sur ce bon nuit

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    J'ai enfin réussi à faire ce que je voulais, ca mets quelques messages d'erreurs sur des variables constantes non déclarés mais ca fonctionne pas mal au final

    Reste à faire quelques petites modifs pour les erreurs et ca roule je pense

    Oh là 4H40 déja, j'aurrais pris 2 heures pour y arriver, piouf

    Maintenant DODO

    Merci à tous, bonne nuit et bon courage aux insomniaques

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Bonsoir

    Serait t'il possible que tu explique comment tu as fait comme cela ca permetra au personne qui en ont besoin de s'aider de ta source

    Cordialement

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Oui sans problème, en faite ma page fais un peu plus que ca, j'ai 2000 fichiers TAR avec des fichiers plus ou moins identiques, alors je parcours le répertoire entier avec cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // parcours du dossier
    $rep = "tars/";
    $dir = opendir($rep);
     
    while ($f = readdir($dir)) {
       if(is_file($rep.$f)) {
     
    //on fait les opérations ici
     
    }
    Ensuite je vais analyser les variables des fichiers PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(file_exists("./temp/$tarfile_name.php")) {
     
    require("./temp/$tarfile_name.php");
     
    } 
     
     
    $terme1		=  $test['terme1'];
    $terme2		=  $test['terme2'];
    $terme3		=  $test['terme3'];
    Puis j'inserre dans la base de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("INSERT INTO test VALUES('$terme1','$terme2','$terme3'");
    Voila voila en gros ce que fais le programme.

    Par contre j'ai un soucis avec la fonction de décompression des TAR qui me fais des erreurs de constantes non déclarés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Notice: Use of undefined constant size - assumed 'size' in
    Notice: Use of undefined constant size - assumed 'fn' in
    Chose qui sur un hébergement test chez free n'intervient pas, alors que sur easy PHP ces messages apparaissent ... que faire ?

    Merci d'avance

  6. #6
    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
    Remplacez tout simplement $tableau[index] par $tableau['index'] ou $tableau["index"], car php cherchera dans le cas de index seul une constante, d'où ce message d'erreur (qui s'affichera ou non suivant la configuration de error_reporting).


    Julp.

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

Discussions similaires

  1. Chargement asynchrone 2 fichiers php-db2 (JSON)
    Par bestsiena dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2015, 19h52
  2. fichier PHP indexé par Google comme "répertoire"
    Par kyrsa dans le forum Référencement
    Réponses: 2
    Dernier message: 13/05/2010, 12h06
  3. Réponses: 1
    Dernier message: 12/03/2009, 16h37
  4. [Wamp] Impossible de lire les fichiers php dans le répertoire www de localhost
    Par eddflo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/01/2009, 00h39
  5. Réponses: 5
    Dernier message: 26/09/2007, 17h20

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