Page 1 sur 1

XML et PHP chez Free

Posté : 15 févr. 2006, 13:39
par Phil
Bonjour à tous.

Je cherche à pouvoir faire plusieurs traitements sur un fichier xml sur un site free.
Je veux donc pouvoir lire certains attributs d'un type de noeud donné, et modifier le fichier xml.

Problème : Chez free il me semble que l'on est en php 4.3.quelque chose. De ce fait le SimpleXML n'est pas supporté.

Quelles solutions puis je avoir ?

Merci de me renseigner.

Si vous voulez plus d'informations sur la structure du fichier xml et les traitements que je souhaite effectuer dessus, n'hésitez pas à demander, je me ferais un plaisir de vous donner mes sources pour avoir de l'aide.

Posté : 15 févr. 2006, 14:26
par Phil
Je viens d'aller voir chez free à cette adresse qu'il y a php 4.3.10 et 5.0.3 installés...
Comment savoir lequel utiliser ?
Via un phpinfo j'ai remarqué que pour moi la version 4.3.10 est active.
Comment faire pour utiliser l'autre et donc pouvoir utiliser SimpleXML ???

Edit : ok je viens de fouilelr dans vos forums... Il faut que j'utilise l'extension .php5...
Je vais donc essayer de faire mon code avec su SimpleXML...

Posté : 15 févr. 2006, 15:43
par Cyrano
Pour utiliser php5 sur free. il faut que tes fichiers aient l'extension .php5 et non .php

Posté : 15 févr. 2006, 16:09
par Phil
Merci pour la réponse.
Je suis en pleine prise de tête avec DOM en ce moment même, mais je progresse.

Posté : 15 févr. 2006, 16:56
par Phil
Ca y est, je suis bloqué...
Dans un document xml structuré de la sorte :

Code : Tout sélectionner

<BL> <joueur Nom="toto" Type="idiot" Motif="parceque" /> </BL>
Je n'arrive pas à insérer un nouvel élément de type "joueur".
J'ai du mal entre les éléments et attributs.
Il faut utiliser quelles fonctions exactement ?
Je manque d'exemplex concrets pour pouvoir adapter mon code à la chose.

Merci

Posté : 15 févr. 2006, 20:39
par Cyrano
Il faudrait voir le code utilisé pour avoir une piste de départ :-k

Posté : 15 févr. 2006, 21:31
par fab
[attardé des standards]
les balises c'est en minuscule !
[/attardé]

Posté : 15 févr. 2006, 22:45
par Phil
Je n'ai pas le code sous la main, j'essaierai de le mettre le plus tôt possible.

Ceci dit, je me permets de ne pas respecter les standards, je veux juste faire ce petit script pour une petite application personnelle.
Je débute en php, ce n'est pas la peine d'être aussi agressif je pense.

Je suis là pour demander de l'aide pas pour prendre de sales remarques.

Posté : 15 févr. 2006, 22:57
par Cyrano
Sur le problème des balises en majuscules, fab a raison et même pour une application perso, tu auras des difficultés avec l'interpréteur XML qui risque de te jeter purement et simplement sans faire de sentiment. :-k

Posté : 16 févr. 2006, 01:51
par Phil
Au temps pour moi, quitte à faire les choses bien autant les faire dès le début et ne pas prendre de mauvaises habitudes.

Posté : 16 févr. 2006, 10:22
par Phil
Allez c'est parti, j'ai passé pas mal de temps à retoucher du code pour que ce soit en minuscules et que ça refonctionne correctement.

Je vous explique ce que fait l'appli.
Il s'agit d'afficher en flash, sous forme tabulaire, des données présentes dans le fichier bl.xml (une blacklist pour éviter de jouer en ligne avec certaines personnes...)
Flash ne gérant pas l'écriture dans les fichiers, je suis obligé de passer par php pour cela.
Via un formulaire, je récupère 3 variables (nom, classe et motif).
J'ai réussi à faire un test d'existence de doublon afin de ne pas insérer un élément dont le nom existe déjà dans le fichier.
Par contre je n'arrive pas à insérer un nouveau noeud de "joueur".

Voici le fichier bl.xml
<?xml version="1.0" encoding="UTF-8"?>
<blacklister>
<joueur nom="test1" Classe="palouf" motif="pas de rez sur un wipe fjbfhklqdhfqjkbfklqbgsfkljbvqfjvqlfbv" />
<joueur nom="test2" classe="palouf" motif="pas de rez sur un wipe" />
<joueur nom="test8" classe="palouf" motif="pas de rez sur un wipe" />
<joueur nom="test6" classe="palouf" motif="pas de rez sur un wipe" />
<joueur nom="test3" classe="palouf" motif="pas de rez sur un wipe" />
<joueur nom="test4" classe="palouf" motif="pas de rez sur un wipe" />
</blacklister>

Mon code pour insérer (qui ne fonctionne pas)
J'ai juste essayé d'insérer des valeurs en dur, sans aovir récupéré les valeurs de mes variables du formulaire auparavant.
$dom = new DOMDocument();
$dom->load('bl.xml');

$node = $dom->createElement("joueur");
$newnode = $dom->appendChild($node);
$newnode->setAttribute("nom", "toto");
$newnode->setAttribute("classe", "chasseur");
$newnode->setAttribute("motif", "idiot");

echo $dom->saveXML();
Mais rien ne s'affiche...
Je n'en suis pas encore à l'écriture même dans le fichier mais je dois avouer que j'ai un peu de mal.

Posté : 17 févr. 2006, 12:44
par Phil
J'ai résolu mon problème grâce au tuto suivant :
http://www.phpbuilder.com/columns/adam_ ... 60206.php3