IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut [DOM XML] 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    J'ai essayé en ajoutant ceci à mon fichier PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $position=-3;
    fseek($fp, $position, SEEK_END);
    Mais il m'inscrit mes données à la fin du fichier ...

    Une idée please ?

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par ExSter
    J'ai essayé en ajoutant ceci à mon fichier PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    hummmm
    utiliser un XML directement en fichier texte n'est sans doute pas judicieux, je rejoins
    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

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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 ...

  7. #7
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    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

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    http://fr2.php.net/manual/fr/ref.dom.php

    J'ai regardé la dessus.

  9. #9
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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 ?

  10. #10
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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)

  11. #11
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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.

  12. #12
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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).

  13. #13
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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 ...

  14. #14
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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.

  15. #15
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    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

  16. #16
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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".

  17. #17
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    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

  18. #18
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Merci, je vais regarder à propos de ce DomAppend Child et je viendrai faire mes ptis commentaires si ça ne fonctionne pas

    Merci encore.

Discussions similaires

  1. [XML] php insertion données dans fichier xml
    Par math11 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/03/2011, 12h20
  2. [DOM] Chargement de données dans fichier XML ?
    Par titoc dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 01/06/2008, 12h31
  3. Inserer des données dans fichier Xml
    Par Logarythme dans le forum InfoPath
    Réponses: 3
    Dernier message: 28/02/2008, 08h35
  4. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo