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 :

Edition en php dans un fichier xml


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut Edition en php dans un fichier xml
    Salut à tous. J'ai un player video qui fonctionne avec une playlist xml.
    Je voudrais savoir si il y a quelq'un qui est une bete en PHP / XML pour me dire si le code suivant conviendrait pour écrire à partir d'un formulaire html dans ce fichier xml (car j'ai récupéré ce code qui au depart n'est pas vraimentfait pour cela ):

    Merci d'avance.

    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
     
    <?php 
     
    $filename = 'image.xml';
    $news = $_POST["nom"]; // variable de Flash
    $blabla = $_POST["prenom"]; // variable de Flash
     
    $newContent = '<news news="'.$news.'" contenu="'.$blabla.'" />';
    $newContent .= '</racine>';
     
    $content = file_get_contents($filename);
    $newContent = str_replace('</racine>', $newContent, $content);
     
    $handle = fopen($filename, 'w');
    fwrite($handle, $newContent);
    fclose($handle);
     
    ?>
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    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
    <?php 
    $filename = 'image.xml';
    $news = 2; 
    $blabla = "Aller bordeaux !"; 
     
    // création d'une balise news avec attribut + balise fermante racine 
    $newContent = '<news news="'.$news.'" contenu="'.$blabla.'" />';
    $newContent .= '</racine>';
    // récupère le contenu du fichier image.xml et l'insère dans une chaîne 
    $content = file_get_contents($filename);
    // remplace la balise de fin racine par la nouvelle news
    $newContent = str_replace('</racine>', $newContent, $content);
    // ouverture du fichier en écriture seul place le curseur en début de fichier 
    $handle = fopen($filename, 'w');
    // écrit dans le fichier le nouveau contenu du xml
    fwrite($handle, $newContent);
    // ferme le fichier
    fclose($handle);
    ?>
    fichier image.xml avant exécution du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <racine>
    	<news news="1" contenu="Blizz come à paris" />
    </racine>
    fichier image.xml après exécution du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <racine>
    	<news news="1" contenu="Blizz come à paris" />
            <news news="2" contenu="Aller bordeaux !" />
    </racine>
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Marci bocu !!!
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est une aberration de traiter un fichier structuré comme s'il s'agissait d'un simple fichier texte : des extensions sont prévues pour cela (DOM et SimpleXML, par exemple, et pour PHP 5). Votre méthodologie est aussi le meilleur moyen de commettre des erreurs (du point de vue de sa validité notamment, puisque les caractères spéciaux ne sont ici nullement pris en compte).

    Edit : si l'on fait ça avec DOM, cela doit donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    $filename = 'image.xml';
    $dom = new DomDocument;
    $dom->formatOutput = TRUE;
    $dom->preserveWhiteSpace = FALSE;
    $dom->load($filename);
     
    $news = $dom->createElement('news');
    $news->setAttribute('news', utf8_encode($_POST['nom']));
    $news->setAttribute('contenu', utf8_encode($_POST['prenom']));
    $dom->documentElement->appendChild($news);
    $dom->save($filename);
    (non testé)

  5. #5
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Comme je ne m'y connais pas trop, je ne serais quoi te répondre !!! Mais il est vrai que en lisant le tuto de Eusebius "PHPdom", je trouve ca plus simple et plus structuré comme code !!!

    Mais merci quand meme a Gats !
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Entierement d'accord avec l'avis de Julp... je me suis contenté d'expliquer le code fourni, c'est vrai que je n'ai pas pensé à emettre des critiques à son sujet.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Bon sinon sinon j'ai testé le code de JULP mais je me retrouve devant cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Fatal error: Cannot instantiate non-existent class: domdocument in...
    En sachant que j'ai repris exactement le meme code !
    Est que je dois dl une librairie ou autre ?

    PS: je suis en PHP 5
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Oui, l'extension DOM doit être activée. Vérifiez cela dans la sortie du phpinfo sinon, et si cela vous est possible, il faudra l'activer en éditant le fichier php.ini pour ajouter une ligne telle que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extension=php_dom.dll # Ici pour windows
    Puis redémarrer le serveur Web.

    Dans le cas contraire, vous ne pourrez malheureusement rien faire. Il faudrait alors regarder si une autre extension XML ne vous est pas mise à disposition (SimpleXML ou autres).

  9. #9
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Premiere question : qu'est que le phpinfo ?

    D'autre part je rajoute "extension=php_dom.dll" n'importe ou ds le php.ini ???

    Merci !
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par pierre24
    Premiere question : qu'est que le phpinfo ?
    Un script PHP composé de :
    Dont on va ensuite regarder la sortie (plusieurs tableaux HTML, récapitulant toute la configuration de PHP).

    Citation Envoyé par pierre24
    D'autre part je rajoute "extension=php_dom.dll" n'importe ou ds le php.ini ???
    Oui, le mieux étant tout de même de la placer avec les autres (pour certaines c'est même nécessaire du fait des dépendances qu'elles entretiennent).

  11. #11
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    ok mais :

    de la placer avec les autres
    tu parles des autres extensions ???

    merci d'avance !!!
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par pierre24
    tu parles des autres extensions ???
    Oui, vous devez bien avoir d'autres lignes type extension=... même commentées, non ?

  13. #13
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Surement mais si je pose cette question c'est que je l'ai pas sous les yeux mais je regarderai ce soir !!! Merci

    Pierre
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  14. #14
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    je suis en train de mater les extensions dans mon php.ini. Par contre j'ai plusieurs fichier php.ini. Je l'ai donc rajouté ds tous mes fichiers mais j'ai toujours la meme erreur !

    voici mon phpinfo() :

    XML Support active
    XML Namespace Support active
    EXPAT Version 1.95.6
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Etes-vous certain de posséder une version 5 de PHP ? EasyPHP 1.8 intégrant, à la base, une version 4.3. Car en réalité, l'extension DOM (parmi d'autres) est normalement intégrée statiquement à PHP (sous windows du moins), ce qui fait que vous n'avez même pas besoin de l'activer.

    L'extrait du phpinfo concernant DOM :
    dom
    DOM/XML enabled
    DOM/XML API Version 20031129
    libxml Version 2.6.26
    HTML Support enabled
    XPath Support enabled
    XPointer Support enabled
    Schema Support enabled
    RelaxNG Support enabled

  16. #16
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Mon probleme vient de la version 4 ! En effet je pensais posseder la version 5. Je vais telecharger la derniere version de Easy PHP (2) qui doit integrer la version 5 !

    Merci.

    Pierre
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  17. #17
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Eh bonsoir !

    Je suis bien passé sous PHP5 avec easyPHP v2. Par contre j'ai un probleme. Mon site en local ne fonctionne plus du tout. Que se soit les includes la connection avec la base de données... Comment cela se fait -il ?
    Le pire c'est que mon navigateur ( en l'occurence FF) ne me signale aucune erreur !
    Merci d'avance pour votre aide !!!

    Pierre.
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    EasyPHP étant un environnement de développement, je doute fort que l'affichage des erreurs ait été désactivé sur cette version. Vérifiez tout de même ce point (paramètre display_errors à On). Le journal d'erreur d'Apache serait-il plus bavard ?

  19. #19
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Apparement c tout le php que j'ai ecrit avec la version précedente qui n'est pas interprété ! La nouvelle version de Easy PHP ne semble meme pas le lire
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    A tout hasard vous n'utiliseriez pas les balises courtes (<? et <?=) alors que le serveur ne le permet pas (short_open_tag à Off) ?

    Sinon il va falloir donner plus de détails

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Variable PHP dans un fichier XML
    Par BOUHH37 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 04/06/2015, 14h30
  2. Insérer des variables php dans un fichier xml
    Par Aezerium dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 21/02/2011, 11h24
  3. [XML] [DOM XML] editer un noeud dans un fichier XML
    Par nina.b dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/09/2009, 12h22
  4. [FPDF] Edition de listings dans un fichier PDF en PHP ?
    Par nerick dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 22/03/2006, 09h53
  5. [XML] Faire du php dans un fichier XML
    Par Oberown dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2006, 14h17

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