Enregister des données XML

Bonjour,
j'ai crée ce script :

<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

$dir = 'photos_diapo/';
echo '<reponse>';
echo '<album id="photos_diapo">';
if ($handle = opendir($dir))
{
while (false !== ($file = readdir($handle)))
{
if (preg_match("#^[a-z0-9 _-]+\.(jpg|png|jpeg|gif)$#i", $file))
echo '<photo title="'. $file . '" src="files/' . $dir . $file . '"/>';
}
closedir($handle);
}

echo '</album>';
echo '</reponse>';
?>

Le script précedent me génére du XML. Ici, il me génére ceci :

<?xml version="1.0" encoding="utf-8" ?>
- <reponse>
- <album id="photos_diapo">
<photo title="Aigle.jpg" src="files/photos_diapo/Aigle.jpg" />
<photo title="DeathRace.jpg" src="files/photos_diapo/DeathRace.jpg" />
<photo title="devdas.jpg" src="files/photos_diapo/devdas.jpg" />
<photo title="embleme.jpg" src="files/photos_diapo/embleme.jpg" />
<photo title="GTO.jpg" src="files/photos_diapo/GTO.jpg" />
<photo title="Inglorious basterd.jpg" src="files/photos_diapo/Inglorious basterd.jpg" />
<photo title="ironMan.jpg" src="files/photos_diapo/ironMan.jpg" />
<photo title="kamehameha.jpg" src="files/photos_diapo/kamehameha.jpg" />
<photo title="lili.jpg" src="files/photos_diapo/lili.jpg" />
<photo title="TKD.jpg" src="files/photos_diapo/TKD.jpg" />
<photo title="Yeraz.jpg" src="files/photos_diapo/Yeraz.jpg" />
</album>
</reponse>

J'aimerai savoir si il existe un moyen d'enregister le XML généré, dans un fichier XML qui existe déja.

Merci, Jean
Configuration: Windows XP Internet Explorer 8.0

4 réponses

  • Votes
  • Date
  • Date décroissante
    1. Merci pour cette reponse rapide
      Mais le probleme est que le fichier d'origine ne contien qu'un code PHP qui va générer les donnée que je souhaiterai enregistrer
      Autrement dit, je ne peux pas faire un FWrite sur mon fichier .php car il me copiera seulement mon script PHP, et non ce qu'il génére (j'ai bien compris?)

      Merci, Jean
  1. Salut, le mieux pour le xml, c'est de travailler avec le dom.
    En gros, ça fonctionne comme ça :
    <?php
    $XMLfile = 'mon_fichier_xml.xml';
    $dom = new DOMDocument();
    $dom -> load($XMLfile);
    
    $image = $dom -> createElement('photo'); // On créé un nouvel élément "photo"
    $image = $dom -> setAttribute('title', 'Aigle.jpg'); // On ajoute l'attribut "title"
    $image = $dom -> setAttribute('src', 'files/photos_diapo/Aigle.jpg'); // Pareil pour le "src"
    
    $album = $dom -> getElementById('photos_diapo'); // On sélectionne l'album
    
    $album -> appendChild($image); // On ajoute l'élément à l'album
    
    $dom -> save($XMLfile); // On sauvegarde le fichier
    ?>

    Après, ce n'est pas à recopier, c'est juste un aperçus de comment xml peut fonctionner avec php.
    Ce n'est pas évident à prendre en main, mais une fois la logique du dom comprise, ça va tout seul.
    La documentation est bien faite et il y a pas mal d'exemple de donnés. Sinon, il y à un petit tuto.