[resolu][dom] analyser les fichiers d'un répertoire

Eléphant du PHP | 256 Messages

04 nov. 2011, 16:33

Bonjour,

Je voudrai analyser l'ensemble des fichiers d'un répertoire pour trouver ses noeuds.

Pour un seul fichier, ma syntaxe fonctionne fort bien, mais pour l'ensemble des fichiers rien ne s'affiche...
foreach (glob("*.php") as $filename) 
{
$html = file_get_contents($filename);
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName("*");
}
foreach($nodes as $node) {
... Traitement
}
J'ai essayé avec readdirà la place de glob, mais ça ne change rien.

Au risque d'abuser, j'ai aussi une question complémentaire, si vous avez une idée de piste. Si deux noeuds ont le même nom, comment les fusionner ?

Merci pour votre aide. :mrgreen:

Cordialement,

Gaspard
Modifié en dernier par Castor Gaspard le 04 nov. 2011, 18:27, modifié 1 fois.

Mammouth du PHP | 19672 Messages

04 nov. 2011, 16:39

Logique : la seconde boucle est après la première et non imbriquée dedans. Lors de l'exécution de la première, la valeur de $nodes est écrasée à chaque tour. Au moment de lancer la seconde, il n'y a que le résultat du dernier tour de la première boucle.

Quant à la fusion, il faudrait donner des exemples plus complets du code utilisé avec des exemples de valeurs traitées...., mais le premier point devrait déjà dégrossir le problème général.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 256 Messages

04 nov. 2011, 17:30

Bonjour Cyrano,

Je te remercie d'avoir vu instantanément l'erreur.

Au demeurant, à syntaxe équivalente (je simplifie) avec un foreach et glob, l'analyse s'arrête curieusement au premier fichier mais avec un while et readdir classique l'analyse s'effectue correctement.

Je cherche encore pour le doublon, mais je te remercie Cyrano. :D

Cordialement,

Gaspard

Post Scriptum. Le bouton 'Résolu' a disparu ? !!!

Mammouth du PHP | 19672 Messages

04 nov. 2011, 17:38

Il y a eu un problème technique il y a quelques temps sur le forum, donc pour l'instant plus de bouton [Résolu], il faut en attendant éditer le message de départ et ajouter [Résolu] dans le titre du message.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 256 Messages

04 nov. 2011, 18:27

Bonjour,

Triple résolu, alors...
  • Résolu le problème du "Résolu".
  • Résolue mon histoire de boucle.
  • Résolu mon problème de doublons en passant par un tableau et array_unique().
Cordialement, :mrgreen:

Gaspard