Discussion:
Fichier xml ecrit par plusieurs pages php ?
(trop ancien pour répondre)
paul
2007-03-12 14:46:55 UTC
Permalink
Bonjour,

je dois constituer un menu "dynamique" xml.
Je sais comment écrire un fichier à partir d'une page php (fopen fputs
fclose...).
Par contre ce que je ne sais pas c'est comment n'en écrire qu'une partie
car plusieurs pages php doivent constituer ce même fichier xml...

Euh je m'explique :
que le fichier galerie.php ne modifie que la partie Galerie du fichier
menu.xml
Et que le fichier news/php ne modifie que la partie News du même fichier
xml

Je ne sais pas si je suis plus clair....
sylsau
2007-03-12 16:15:05 UTC
Permalink
Post by paul
Bonjour,
je dois constituer un menu "dynamique" xml.
Je sais comment écrire un fichier à partir d'une page php (fopen fputs
fclose...).
Par contre ce que je ne sais pas c'est comment n'en écrire qu'une partie
car plusieurs pages php doivent constituer ce même fichier xml...
que le fichier galerie.php ne modifie que la partie Galerie du fichier
menu.xml
Et que le fichier news/php ne modifie que la partie News du même fichier
xml
Je ne sais pas si je suis plus clair....
Si le fichier sur lequel tu écris est un fichier XML cela ne pose pas
de problèmes.
Dans ton fichier XML tu définis des balises correspondants aux
différentes catégories (galerie, news, ...) par exemple.

Lorsque tu ouvres le fichier XML dans un des fichiers PHP, tu
récupères l'arbre XML du fichier et ensuite tu vas pouvoir t'occuper
et modifier que la partie qui t'intéresse en récupérant que le contenu
de la balise galerie par exemple depuis l'arbre XML crée.

Une fois ton arbre XML modifié il te suffit de le réécrire dans le
fichier XML depuis ta page PHP et le tour est joué.
paul
2007-03-12 23:35:30 UTC
Permalink
Post by sylsau
Si le fichier sur lequel tu écris est un fichier XML cela ne pose pas
de problèmes.
Dans ton fichier XML tu définis des balises correspondants aux
différentes catégories (galerie, news, ...) par exemple.
Lorsque tu ouvres le fichier XML dans un des fichiers PHP, tu
récupères l'arbre XML du fichier et ensuite tu vas pouvoir t'occuper
et modifier que la partie qui t'intéresse en récupérant que le contenu
de la balise galerie par exemple depuis l'arbre XML crée.
Une fois ton arbre XML modifié il te suffit de le réécrire dans le
fichier XML depuis ta page PHP et le tour est joué.
Oui c'est bien ce que je pensais faire...
Mais c'est le comment faire qu'il me manque !
;-)


Comment ne récupérer et n'écrire "que" ce qui doit l'être ?


Pour galeries.php la partie à modifier est située entre la chaîne :
<TEXT>Galeries</TEXT>
et la prochaine occurence de :
</PARENT>

Même principe pour news.php, entre la chaîne :
<TEXT>News</TEXT>
et la prochaine occurence de :
</PARENT>


Merci
Paul
Thief13
2007-03-13 08:26:04 UTC
Permalink
Lit les docs de dom et de simplexml, tu y trouvera la réponse. RTFM XD
Thief13
2007-03-12 16:15:05 UTC
Permalink
Voici par ordre de préférence (la mienne bien sure) les diférentes
méthodes pour manipuler du XML. (pour sax par contre, il n'y a pas moyen
d'écrire)

simplexml :
http://fr.php.net/manual/fr/ref.simplexml.php

DOM :
http://fr.php.net/manual/fr/ref.dom.php

SAX :
http://fr.php.net/manual/fr/ref.xml.php
M
2007-03-12 16:15:05 UTC
Permalink
Bonjour,

Piste : va faire un tour du côté des fonctions DOM.
http://fr2.php.net/manual/fr/ref.dom.php

Questions :
- comment as-tu prévu de gérer les accès concurrentiels lorsque
galerie.php et new.php seront exécutés simultanément ?
- pourquoi ne pas gérer deux fichiers XML différents ? La génération
du menu pourrait se faire en lisant plusieurs fichiers...

M
Post by paul
Bonjour,
je dois constituer un menu "dynamique" xml.
Je sais comment écrire un fichier à partir d'une page php (fopen fputs
fclose...).
Par contre ce que je ne sais pas c'est comment n'en écrire qu'une partie
car plusieurs pages php doivent constituer ce même fichier xml...
que le fichier galerie.php ne modifie que la partie Galerie du fichier
menu.xml
Et que le fichier news/php ne modifie que la partie News du même fichier
xml
Je ne sais pas si je suis plus clair....
Olivier Miakinen
2007-03-12 17:11:31 UTC
Permalink
Post by M
- comment as-tu prévu de gérer les accès concurrentiels lorsque
galerie.php et new.php seront exécutés simultanément ?
De la même manière, je suppose, qu'il gèrera les accès concurrentiels
lorsque deux instances de galerie.php seront exécutées simultanément
(idem pour deux instances de new.php).
Post by M
- pourquoi ne pas gérer deux fichiers XML différents ? La génération
du menu pourrait se faire en lisant plusieurs fichiers...
Cela ne supprimera pas le besoin de gérer les accès concurrentiels.
Post by M
Post by paul
Bonjour,
[ copie intégrale de l'article précédent ]
Comment bien répondre à un article sur Usenet :
http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/
paul
2007-03-14 11:39:33 UTC
Permalink
Post by M
- pourquoi ne pas gérer deux fichiers XML différents ? La génération
du menu pourrait se faire en lisant plusieurs fichiers...
Hum... mais oui, tu as raison !
Il faudrait mettre la même fonction dans chacune des 2 pages php. Elle
concatènera menu_a.xml avec menu_b.xml pour générer menu.xml

Comment faire ça simplement ?

Merci
Paul
Christophe Meresse
2007-03-14 22:56:22 UTC
Permalink
Post by paul
Post by M
- pourquoi ne pas gérer deux fichiers XML différents ? La génération
du menu pourrait se faire en lisant plusieurs fichiers...
Hum... mais oui, tu as raison !
Il faudrait mettre la même fonction dans chacune des 2 pages php. Elle
concatènera menu_a.xml avec menu_b.xml pour générer menu.xml
Même pas besoin de generer ce fichier menu.xml. Les fichiers
menu_a.xml et menu_b.xml doivent être suffisant pour le script qui
affiche le menu...

Christophe
Mihamina (R12y) Rakotomandimby
2007-03-14 22:56:22 UTC
Permalink
Post by paul
Il faudrait mettre la même fonction dans chacune des 2 pages php. Elle
concatènera menu_a.xml avec menu_b.xml pour générer menu.xml
Comment faire ça simplement ?
En mettant plutot la fonction en charge de concaténer en dehors des fichiers
à concaténer. Ou bien?

Continuer la lecture sur narkive:
Loading...