Insertion dans du xml

Eléphanteau du PHP | 13 Messages

17 juil. 2005, 18:13

Salut,
comment dois je faire pour inserer "un truc" dans un fichier xml deja existant, j'ai fait ca selon un bouquin de chez eyrolles mais il m'efface ma BDD xml et ne me permet pas d'inserer :(

Help! plz :)
<?php
$dest_dir ='./UploadToile/';
move_uploaded_file ($_FILES['Mini']['tmp_name'], $dest_dir.$_FILES['Mini']['name']);
move_uploaded_file ($_FILES['Photo']['tmp_name'], $dest_dir.$_FILES['Photo']['name']);
$Mini=($_FILES['Mini']['name']);
$Photo=($_FILES['Photo']['name']);
$fp= fopen ("Toile.xml", "w");
$fichier_xml="<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n";
$fichier_xml.="<visioneuse>\r\n";
$fichier_xml.="\t<diapo>";
$fichier_xml.="<mini>".$dest_dir.$Mini."</mini>";
$fichier_xml.="<photo>".$dest_dir.$Photo."</photo>";
$fichier_xml.="</diapo>\r\n";
$fichier_xml.="</visioneuse>";
fwrite($fp, $fichier_xml);
fclose($fp);
header("location:Toile.xml");
?>

Invité
Invité n'ayant pas de compte PHPfrance

18 juil. 2005, 09:56

Personne de pévhu pour m'aider dans ma quêeeeeete????

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 juil. 2005, 10:02

si tu ouvres ton fichier en mode 'w', tu a tout réécrire par dessus
si tu veux rajouter du contenu à la suite, ouvre avec 'a+'

mais pour traiter du xml il y a des outils plus appropriés si tu souhaites insérer du contenu au milieu

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 juil. 2005, 10:04

$fp= fopen ("Toile.xml", "w"); 
Cette ligne te permet d'ouvrir ton fichier XML, OK
mais le "w" ouvre le fichier en supprimant le contenu précédent ... :wink:
Si tu veut ajouter à la fin de ton document des lignes, il faut utiliser l'argument "a"
$fp= fopen ("Toile.xml", "a"); 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 983 Messages

18 juil. 2005, 10:04

Comme DomXML

Eléphanteau du PHP | 13 Messages

18 juil. 2005, 21:18

Salut!
Merci pour vos réponses cela m'a bien aider... mais j'ai encore un soucis... et voui (soupirs!) il faudrait que j'insére les données entre mes deux balises <visioneuse>...</visioneuse>

Mammouth du PHP | 19672 Messages

19 juil. 2005, 08:12

Dans le principe :
ouvre ton fichier XML et récupère toutes les données dans un tableau (array) multidimensionnel. Ensuite, dans une boucle tu devras récupérer ligne par ligne ton tableau pour ré-écrire complètement ton fichier en insérant à l'endroit voulu l'information que tu veux ajouter là où tu veux l'ajouter en fonction d'un critère défini dans une alternative if/else par exemple.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

19 juil. 2005, 10:37

Modération : Hop ! Hop ! On a un beau forum "XML" pourquoi ne pas l'utiliser ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 219 Messages

20 juil. 2005, 10:43

Un petit mot dire que je rejoins volontiers rami sur l'utilisation de l'api DOM dans ton cas.