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

Langage PHP Discussion :

PHP => XML écrire entre <root></root>


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut PHP => XML écrire entre <root></root>
    Bonjour,

    Voila je suis complètement débutant en php je suis orienté Flash
    et j'ai un petit problème avec du php

    donc ma question(problème) est que je voudrai ecrire d'office dans mon xml
    les balise <root> </root>, de les ecrire jai réussi

    Code : 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
    32
    33
    34
    35
    36
     <?
    // Fonction pour l envoi des valeurs a Flash
    FUNCTION Parse($variable,$valeur)
    {
         echo "&$variable=$valeur";
    }
    //----------------------------------------------
     
    // Fonction pour ecrire $content dans un fichier
     
    FUNCTION writeFile( $filename,$content ) 
    {
     
      @$fp = fopen( $filename, "a"); 
      IF ( $fp ) 
      {
         fputs($fp,"<root>\n");
         fputs($fp,$content);
         fputs($fp,"</root\n");
     
     
        fclose( $fp ); 
        RETURN 1; 
      } 
      RETURN false; 
    }
    //-----------------------------------------------
    $NewMess=urldecode($NewMess);
     
    // ON ecrit les nouvelle news
    writeFile('Clips.xml',$NewMess);
     
    // ON envoi une var de fin a flash
    Parse("retour","1");
     
    ?>
    mais le probleme c'est quan je fait appelle a ma fonction dans Flash j'envoie le texte saisie dans Flash vers le PHP qui lui ecrie dans mon xml donc a chaque fois que jecrie une "news" il me met les <root>, or jaimerai quil ne me l'ecrive qu'une seule fois


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <root>
     
    <news>salut salut</news><titre> salut1</titre>
    <news>salut2 salut2</news><titre> salut12</titre>
     
    </root>
    alors que pour linstant quan j'ecrie une news il me m'ecrie ça dans le xml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <root>
     
    <news>salut salut</news><titre> salut1</titre>
     
    </root>
    <root>
     
    <news>salut2 salut2</news><titre> salut2</titre>
     
    </root>
    j'espère que j'ai était asser claire merci beaucoup

  2. #2
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    fonctions :
    Code : 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
    32
     
    <?php
     
    // retourne le couple ($varName, $value) sous la forme '&$varName=$value'
    function parseVar(string $varName, $value)
    {
       return '&'.$varName.'='.urlencode($value);
    }
     
    /* modifie le fichier XML $fileName en lui ajoutant un noeud <$nodeName>
    avec le contenu $content */
    function addNodeToFile(string $fileName, string $content, string $nodeName) 
    {
      $res = FALSE;
     
      // chargement du fichier XML
      $xml = new SimpleXMLElement($fileName);
      if ($xml)
      {
        // ajout d'un noeud <message>$content</message> au noeud root
        $xml->addChild($nodeName, $content);
     
        // écriture du fichier
        file_puts_content($fileName, $xml->asXML());
     
        $res = TRUE;
      }
     
      return $res;
    }
     
    // EOF
    utilisation :
    Code : 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
     
    <?php
     
    // nom du fichier XML
    $fileName = 'news.xml';
     
    // récupération des variables POST
    $news_title = addslashes(trim($_POST['news[title]']));
    $news_content = addslashes(trim($_POST['news[content]']));
     
    // écriture de la news (le titre puis le contenu)
    $res = FALSE;
    if (strlen($news_title) && strlen($news_content))
    {
       $res = addNodeToFile($fileName, $news_title, 'title');
       $res &= addNodeToFile($fileName, $news_content, 'content');
    }
     
    // écriture du résultat (1 ou 0)
    echo parseVar('retour', $res);
     
    // EOF

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Merci pour cette réponse plus que rapide mais je met tous ça ou ? lol

    merci encore

  4. #4
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    j'ai fait des modifications désolé :p

    tu peux mettre les fonctions dans un fichier "fonctions.inc.php'

    dans ton fichier où tu récupères tes variables, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     
    require_once('fonctions.inc.php');
     
    // mettre ici le contenu du code d'utilisation
     
    // EOF
    j'espère ne pas avoir fait d'erreur(s). si c'est le cas, n'hésites-pas. en tout cas, tu devrais comprendre la logique de traitement si tu veux modifier le code.

    N.B. : l'extension simple XML doit être activée par défaut.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    ok alors je comprend encore moins donc enfete deja jai pas donnée la vrai strucutre xml pour pas vous induire en erreur et pour donnée un exemple simple

    Vrais structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Play_list>
    	<Clip>
    		<Chemin value='video/salut'/>
    		<Titre value='salut'/>
    	</Clip>
    </Play_list>
    deuxieme choses
    ça je le met dans fonction.inc.php

    Code : 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
    <?php
     
    // retourne le couple ($varName, $value) sous la forme '&$varName=$value'
    function parseVar(string $varName, $value)
    {
       return '&'.$varName.'='.urlencode($value);
    }
     
    /* modifie le fichier XML $fileName en lui ajoutant un noeud <$nodeName>
    avec le contenu $content */
    function addNodeToFile(string $fileName, string $content, string $nodeName) 
    {
      $res = FALSE;
     
      // chargement du fichier XML
      $xml = new SimpleXMLElement($fileName);
      if ($xml)
      {
        // ajout d'un noeud <message>$content</message> au noeud root
        $xml->addChild($nodeName, $content);
     
        // écriture du fichier
        file_puts_content($fileName, $xml->asXML());
     
        $res = TRUE;
      }
     
      return $res;
    }
     
    // EOF
    mais ça ?

    Code : 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
    <?php
     
    // nom du fichier XML
    $fileName = 'news.xml';
     
    // récupération des variables POST
    $news_title = addslashes(trim($_POST['news[title]']));
    $news_content = addslashes(trim($_POST['news[content]']));
     
    // écriture de la news (le titre puis le contenu)
    $res = FALSE;
    if (strlen($news_title) && strlen($news_content))
    {
       $res = addNodeToFile($fileName, $news_title, 'title');
       $res &= addNodeToFile($fileName, $news_content, 'content');
    }
     
    // écriture du résultat (1 ou 0)
    echo parseVar('retour', $res);
     php
    // EOF
    Vraiment dur le Rhoooo je suis meilleur en AS Vache ^^

  6. #6
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    le code d'utilisation peut être placé à l'endroit où tu souhaites utiliser les fonctions, tout simplement.

    concernant le code, on peut le modifier à notre guise pour adapter à tes besoins.

    Voici comment créer en PHP, un fichier contenant
    l'exemple que tu as donné :
    Code : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <?php 
     
    // création du noeud root
    $playList = new SimpleXMLElement('Play_list');
    /*
    <Play_list/>
    */
     
    // création d'un fils de type clip
    $clip1 = $playList->addChild('Clip');
    /*
    <Play_list>
      <Clip/>
    </Play_list>
    */
     
    // fils de clip1 Chemin
    $chemin1 = $clip1->addChild('Chemin');
    $chemin1->addAttribute('value', 'video/salut');
    /*
     <Play_list>
      <Clip>
        <Chemin value="video/salut'/>
      </Clip>
    </Play_list>
     */
     
    // fils de clip1 Titre
    $titre1 = $clip1->addChild('Titre');
    $titre1->addAttribute('value', 'salut');
    /*
      <Play_list>
       <Clip>
        <Chemin value="video/salut'/>
        <Titre value="salut"/>
      </Clip>
     </Play_list>
      */
     
    // résultat stocké dans un fichier
    file_puts_content('Playlists.xml', $playList->asXML());
     
    // EOF
    avec ceci, tu peux tout comprendre normalement.

    a toi de voir pour modifier les fonctions comme il te convient.
    il faut bien que tu t'exerces un peu :p

Discussions similaires

  1. PHP => XML écrire entre <root>
    Par KenSh_Powa dans le forum Débuter
    Réponses: 0
    Dernier message: 07/08/2009, 14h31
  2. Réponses: 11
    Dernier message: 17/01/2006, 17h54
  3. oracle accepte t'il du xml en entrée?
    Par dahno_fr dans le forum Oracle
    Réponses: 2
    Dernier message: 11/01/2006, 17h02
  4. [Wamp] Cherche plateforme pour développer en php, mysql, xml, xsl
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 18/10/2005, 18h31
  5. PHP dans XML ou XSL
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/08/2003, 22h07

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