Bonjour,

Je développe un programme qui permet ,dans un répertoire, de modifier des fichiers.xml en les transformant en .txt dont le titre est une balise contenue dans le xml.

Je traite bien les fichiers mais il arrive que des fichiers XML contiennent la même balise constituant le nommage du fichier .txt

exemple :
contenu de 12345.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
...
<Sujet>5-communes</Sujet>
...
contenu de 23456.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
...
<Sujet>5-communes</Sujet>
...
J'aimerais récupérer les 2 fichiers , tester si ils se nomment de la même manière, pouvoir renommer le 2nd en 5-communes-1 dans notre cas.

J'ai essayé "file exists", mais ça ne remarque pas qu'il existe déjà ?!?
voici mon prog

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
 
<?php
 
// on ouvre le repertoire
$handle = opendir('.');
 
// on scrupte le repertoire
while(false !== ($file = readdir($handle))) {
    if($file != "." && $file != ".." && $file !="transxml.php") {
 
// on cree le chemin
$path = '.'.'/'.$file;
 
// on traite tous les fichiers xml
if (preg_match('~\T.xml$~',$file)) {
 
// on applique la transformation
x$sxml = simplexml_load_file($path);
$titre = utf8_decode($sxml->Proprietes->Sujet);
//echo utf8_decode($sxml->Contenu);
$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);
 
// on cree le fichier destination avec les donnees du fichier source
$fp = fopen ('.' . DIRECTORY_SEPARATOR . $titre. '.txt','w');
fputs ($fp,$texte);
fclose ($fp); 
}
}
 
}
 
// on ferme le repertoire
closedir($handle); 
?>
Merci d'avance pour vos réponses , car je nage