nicdudu | 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 . Ce qui me dérange c'est que je voudrais que les 2 fichiers soient présents après lancement du programme. Actuellement, un seul fichier ressort !
[B]exemple : [/B]
contenu de 12345.xml
Code :
- ...
- <Sujet>5-communes</Sujet>
- ...
|
contenu de 23456.xml
Code :
- ...
- <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 :
- <?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 |