Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2007, 02h24   #1
Membre à l'essai
 
Inscription : décembre 2005
Messages : 120
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 120
Points : 23
Points : 23
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 :
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
thefutureisnow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 02h35   #2
Membre à l'essai
 
Inscription : décembre 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 36
Points : 24
Points : 24
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 :
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
cellestion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 04h43   #3
Membre à l'essai
 
Inscription : décembre 2005
Messages : 120
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 120
Points : 23
Points : 23
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
thefutureisnow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 04h46   #4
Membre expérimenté
 
Inscription : janvier 2007
Messages : 439
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 439
Points : 519
Points : 519
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
spawntux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 15h02   #5
Membre à l'essai
 
Inscription : décembre 2005
Messages : 120
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 120
Points : 23
Points : 23
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 :
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 :
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 :
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 :
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
thefutureisnow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 15h53   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h43.


 
 
 
 
Partenaires

Hébergement Web