Bonjour,

Je voudrais faire une fonction récursive pour transformer des fichiers XML contenus dans des dossiers et des sous dossiers.
J'utilise pour cela simplexml_load_file qui me permet d'exploiter le contenu de ces fichiers d'une manière simple.

Le soucis est que ça fonctionne sur le repertoire courant , mais pas dans les sous répertoires !?! Si quelqu'un pourrait me dire ce qu'il ne convient pas dans cette fonction.

Merci d'avacne pour vos réponses !!!

Voici mon code :
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
<?php

function recursive_readdir ($dir) {

if (is_dir ($dir))

$handle = opendir($dir);

else {
echo $dir, ' n\' est pas u nrepertoire valide';
exit;
}
while(false !== ($file = readdir($handle))) {
    if($file != "." && $file != ".." && $file !="transxml.php") {

      $path = $dir.'/'.$file;

if (is_dir ($path)) {
     echo $path, ' est un repertoire valide';
      recursive_readdir ($path);
}
else

$sxml = simplexml_load_file($file);
$titre = utf8_decode($sxml->Proprietes->Sujet);
$texte = utf8_decode($sxml->Contenu);

$texte = str_replace('?',"'",$texte);
$texte = str_replace('\(','',$texte);
$bad = array ('\cST\s','\cTI\s','\cTX\s','\cSG\s','\$','\dSG\t','\dDS1,2\t','\dFS\t','\dSN\t','\dSI\t','\cCH\s');
$good = array ('','','',' ',' ','','','','','','');
$texte = str_replace ($bad,$good,$texte);

$titre = str_replace (' ','_',$titre);

$fp = fopen ($titre.'.txt','w');
fputs ($fp,$texte);
fclose ($fp);

}

}
closedir ($handle);
}
recursive_readdir ('.');
?>