Enregister des données XML
bonolebo
Messages postés
30
Statut
Membre
-
zoby44 Messages postés 868 Statut Membre -
zoby44 Messages postés 868 Statut Membre -
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
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
A voir également:
- Enregister des données XML
- Fuite données maif - Guide
- Xml viewer - Télécharger - Édition & Programmation
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Office xml handler - Télécharger - Traitement de texte
4 réponses
Salut, le mieux pour le xml, c'est de travailler avec le dom.
En gros, ça fonctionne comme ça :
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.
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.
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