Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2006, 16h06   #1
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Par défaut [DOMXML] Insertion données dans fichier XML avec PHP pour Flash ?

Bonjour,

Avec l'application FLASH que j'essaye de terminer, j'utilise un fichier XML.

Celui a la structure suivante :

Code XML :
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
<?xml version="1.0" encoding="UTF-8"?> 
<racine> 
 <dj> 
  <pseudo>aaaa</pseudo> 
  <pays>Belgium</pays> 
  <ville>Verviers</ville> 
  <genre>House</genre>       
  <prenom>aaaa</prenom> 
  <nom>aaaa</nom> 
  <daten>01/01/1900</daten> 
  <bio>C'est à l'age de 16 ans qu'il commence à ...</bio>   
  <email>aaa@aaa.aaa</email> 
  <web>www.aaa.aaa</web> 
  <photo>photosdj/01.jpg</photo> 
 </dj>
 
 <dj> 
  <pseudo>bbbb</pseudo> 
  <pays>Belgium</pays> 
  <ville>Huy</ville> 
  <genre>Tech</genre>       
  <prenom>bbbb</prenom> 
  <nom>bbbb</nom> 
  <daten>01/01/1900</daten> 
  <bio>Jouant de la trompette lol ...</bio>   
  <email>bbbb@bbbb.bbbb</email> 
  <web>www.bbbb.bbbb</web> 
  <photo>photosdj/02.jpg</photo> 
 </dj>
 
</racine>

Dans FLASH, j'ai fais un formulaire qui permet de saisir toutes les données nécéssaires à inscrire dans le fichier XML.
Lorsque je fais "Envoyer formulaire", il l'envoie par la méthode POST à un fichier PHP.
Ce fichier PHP récupère les données et ensuite inscrits dans le fichier XML à la suite des autres enregistrements.

Le problème, c'est qu'il y a la balise </racine> à la fin du fichier XML.
Avec mon fichier PHP, il m'ajoute les enregistrement à la fin du fichier XML.

J'aimerais juste qu'il me les ajoute à la fin du fichier, mais JUSTE AVANT la balise </racine> de fin de fichier XML.

Auriez-vous une idée ?

Voici mon fichier PHP :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
// Récupération des données via POST
$a_renvoyer=$_POST["var_envoi"];
$a_renvoyer=stripslashes($a_renvoyer); 
str_replace("\r\n","&lt;br&gt;",$a_renvoyer);
// &lt;br&gt; ---> <br>
// Enregistrer les donnees
$fichier = 'dj.xml';
$fp=fopen($fichier,"a+");
fwrite($fp,"$a_renvoyer \n");
fclose($fp);
echo($a_renvoyer);
?>
Auriez-vous une idée ?

Merciiii
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 16h49   #2
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
J'ai essayé en ajoutant ceci à mon fichier PHP :

Code :
1
2
$position=-3;
fseek($fp, $position, SEEK_END);
Mais il m'inscrit mes données à la fin du fichier ...

Une idée please ?
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 16h52   #3
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ExSter
J'ai essayé en ajoutant ceci à mon fichier PHP :

Code :
1
2
$position=-3;
fseek($fp, $position, SEEK_END);
Mais il m'inscrit mes données à la fin du fichier ...

Une idée please ?
Utilise les fonctions DOM (PHP5) ou DOMXML (PHP4)
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h00   #4
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Citation:
Envoyé par Eusebius
Utilise les fonctions DOM (PHP5) ou DOMXML (PHP4)
J'ai réussi ... J'ai juste changé mon type d'ouverture de fichier.

J'ai mis mon fichier en ouverture R+ (au lieu de A+) et je le positionné mon Seek sur :

Code :
1
2
$position=-13;
fseek($fp, $position, SEEK_END);
Hop, et il me place correctement, mais le soucis c'est qu'il ECRASE la balise </racine> de fin, donc je dois l'ajouter à la fin de ma donnée à insérer.

Bref, je vais essayer avec ce que tu m'as conseillé de faire

merci
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h16   #5
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
hummmm
utiliser un XML directement en fichier texte n'est sans doute pas judicieux, je rejoins
Citation:
Utilise les fonctions DOM (PHP5) ou DOMXML (PHP4)
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h27   #6
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Citation:
Envoyé par wamania
hummmm
utiliser un XML directement en fichier texte n'est sans doute pas judicieux, je rejoins
J'ai recherché comment je pouvais faire avec le DOM mais ça m'a l'air hyper complexe ...

Ici, dans mon fichier PHP j'ai juste modifié 2 lignes, le seek set et ça fonctionne.

Par contre si quelqu'un connait directement la manière de faire, je tenterai ...
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h28   #7
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
J'ajoute que tu peux trouver de l'aide ici: http://fr.php.net/manual/fr/ref.dom.php
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h28   #8
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
http://fr2.php.net/manual/fr/ref.dom.php

J'ai regardé la dessus.
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h29   #9
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ExSter
J'ai recherché comment je pouvais faire avec le DOM mais ça m'a l'air hyper complexe ...

Ici, dans mon fichier PHP j'ai juste modifié 2 lignes, le seek set et ça fonctionne.

Par contre si quelqu'un connait directement la manière de faire, je tenterai ...
C'est dix fois plus simple, conceptuellement, que ce que tu fais... tu es sous PHP4 ou 5 ?
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h30   #10
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Citation:
Envoyé par Yobs
J'ajoute que tu peux trouver de l'aide ici: http://fr.php.net/manual/fr/ref.dom.php
Tu m'as pris d'avance ... j'étais bloqué par les 30 secondes d'antiflood :p

C'est bien là que j'ai regardé.

Malheureusement je n'ai pas trouvé la fonction MAGIQUE qui permet de positionner là ou je veux ... (comme le FSEEK :p hihi)
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h30   #11
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Citation:
Envoyé par Eusebius
C'est dix fois plus simple, conceptuellement, que ce que tu fais... tu es sous PHP4 ou 5 ?
Là ça tourne avec EasyPHP en local .... je présume que c'est le 5.
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h33   #12
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ExSter
Là ça tourne avec EasyPHP en local .... je présume que c'est le 5.
Sauf si tu as une bêta de EasyPHP 2 ou si tu as modifié l'install de PHP, c'est PHP4. Donc c'est qu'il faut aller voir, et pas sur le lien précédent (qui concerne PHP5).
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h37   #13
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Ok.

Donc PHP 4

Ce n'est peut etre pas la meilleure solution j'avoue, mais ça fonctionne pour tous mes systèmes de NEWS (ajout de news dans un fichier XML avec PHP) , Livre d'OR , Agenda, etc ...

Vu que je récupère les données saisies via une interface FLASH par la méthode POST dans le fichier PHP, je ne prends pas variable par variable les valeurs que les noeuds doivent prendre.

Mais je n'ai pas la commande magique qui me permettrait de faire la même chose "correctement". Je ne suis pas un chevronné du XML et PHP malheureusement ...
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h40   #14
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ExSter
Je ne suis pas un chevronné du XML et PHP malheureusement ...
C'est pas un état de fait immuable, heureusement... Si tu dois travailler un peu/beaucoup entre PHP et XML, je te promets que ça vaut le coup de dompter les fonctions DOM.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h43   #15
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Citation:
Envoyé par Eusebius
C'est pas un état de fait immuable, heureusement... Si tu dois travailler un peu/beaucoup entre PHP et XML, je te promets que ça vaut le coup de dompter les fonctions DOM.
Je te crois sur parole

Malheureusement à l'heure actuelle je dois finir ce truc pour vendredi.

Je n'ai pas bcp de temps pour fouiner dedans et faire pleins d'essais.

Mais je vais essayer de trouver a partir de vendredi après midi ...

Mais pourrais-tu me mettre sur la voie concernant la méthode à utiliser ? la fonction ? (la ou les ...)

Merci
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h46   #16
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ExSter
Mais pourrais-tu me mettre sur la voie concernant la méthode à utiliser ? la fonction ? (la ou les ...)
Ben t'as l'adresse de la doc correspondante, tu n'auras qu'à aller piocher ce dont tu as besoin, et poster en cas de problème précis après lecture de la doc.

A noter : cette extension change entre PHP4 et PHP5... elle n'est plus supportée dans PHP5, où on passe à une extension "tout objet".
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 18h08   #17
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
DomNode_appendChild est un bon début. http://fr.php.net/manual/fr/ref.domxml.php
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 11h16   #18
Membre régulier
 
Étudiant
Inscription : janvier 2004
Messages : 279
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2004
Messages : 279
Points : 71
Points : 71
Envoyer un message via ICQ à ExSter Envoyer un message via MSN à ExSter Envoyer un message via Skype™ à ExSter
Merci, je vais regarder à propos de ce DomAppend Child et je viendrai faire mes ptis commentaires si ça ne fonctionne pas

Merci encore.
ExSter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h04.


 
 
 
 
Partenaires

Hébergement Web