Le problème est que je n'arrive pas à en extraire les valeurs pour en faire des variables PHP.
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
http://www.php.net/manual/en/function.file.php : file -- Reads entire file into an array Identical to readfile(), except that file() returns the file in an array. Each element of the array corresponds to a line in the file, with the newline still attached. Upon failure, file() returns FALSE.
Bref, chaque ligne de ton fichier se retrouve à l'indice du tableau correspondant au n° de ligne (la numérotation commençant à zéro). Ce qui est totalement sans intérêt dans le cas d'un fichier XML, puisque les sauts de ligne n'apportent aucune info sur la structure des données (il pourrait aussi bien n'y avoir qu'une seule ligne sans rien changer à la signification du fichier).
Comment faire ? Merci de votre aide.
Comme tu ne peux pas te fier au fait que "une ligne = une balise" (car rien ne te garantit que ce sera toujours le cas), il faut utiliser les technos appropriées pour lire et analyser du XML, ie : - les parseurs sax : http://www.php.net/manual/en/ref.xml.php - les parseurs DOM : http://www.php.net/manual/en/ref.domxml.php - et éventuellement XSLT : http://www.php.net/manual/en/ref.xslt.php
La solution à choisir dépend du résultat à atteindre. Mais le plus simple est très probablement le parseur sax. Je te renvoie à la doc pour plus d'infos et quelques exemples - *une fois que tu l'aura lue*, n'hésite pas à reposter ici si tu coinces !-)
PS : Voilà le type de tableau XML envoyé :
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
(snip XML)
Mes deux centimes, Bruno
Largudon wrote:
Bonjour à tous. J'ai un gros blocage dans la création d'un site et je ne
suis pas un pro du developpement... Voilà mon problème :
Le problème est que je n'arrive pas à en extraire les valeurs pour en faire
des variables PHP.
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
http://www.php.net/manual/en/function.file.php :
file -- Reads entire file into an array
Identical to readfile(), except that file() returns the file in an
array. Each element of the array corresponds to a line in the file, with
the newline still attached. Upon failure, file() returns FALSE.
Bref, chaque ligne de ton fichier se retrouve à l'indice du tableau
correspondant au n° de ligne (la numérotation commençant à zéro). Ce qui
est totalement sans intérêt dans le cas d'un fichier XML, puisque les
sauts de ligne n'apportent aucune info sur la structure des données (il
pourrait aussi bien n'y avoir qu'une seule ligne sans rien changer à la
signification du fichier).
Comment faire ? Merci de votre aide.
Comme tu ne peux pas te fier au fait que "une ligne = une balise" (car
rien ne te garantit que ce sera toujours le cas), il faut utiliser les
technos appropriées pour lire et analyser du XML, ie :
- les parseurs sax :
http://www.php.net/manual/en/ref.xml.php
- les parseurs DOM :
http://www.php.net/manual/en/ref.domxml.php
- et éventuellement XSLT :
http://www.php.net/manual/en/ref.xslt.php
La solution à choisir dépend du résultat à atteindre. Mais le plus
simple est très probablement le parseur sax. Je te renvoie à la doc pour
plus d'infos et quelques exemples - *une fois que tu l'aura lue*,
n'hésite pas à reposter ici si tu coinces !-)
PS : Voilà le type de tableau XML envoyé :
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des
balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
Le problème est que je n'arrive pas à en extraire les valeurs pour en faire des variables PHP.
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
http://www.php.net/manual/en/function.file.php : file -- Reads entire file into an array Identical to readfile(), except that file() returns the file in an array. Each element of the array corresponds to a line in the file, with the newline still attached. Upon failure, file() returns FALSE.
Bref, chaque ligne de ton fichier se retrouve à l'indice du tableau correspondant au n° de ligne (la numérotation commençant à zéro). Ce qui est totalement sans intérêt dans le cas d'un fichier XML, puisque les sauts de ligne n'apportent aucune info sur la structure des données (il pourrait aussi bien n'y avoir qu'une seule ligne sans rien changer à la signification du fichier).
Comment faire ? Merci de votre aide.
Comme tu ne peux pas te fier au fait que "une ligne = une balise" (car rien ne te garantit que ce sera toujours le cas), il faut utiliser les technos appropriées pour lire et analyser du XML, ie : - les parseurs sax : http://www.php.net/manual/en/ref.xml.php - les parseurs DOM : http://www.php.net/manual/en/ref.domxml.php - et éventuellement XSLT : http://www.php.net/manual/en/ref.xslt.php
La solution à choisir dépend du résultat à atteindre. Mais le plus simple est très probablement le parseur sax. Je te renvoie à la doc pour plus d'infos et quelques exemples - *une fois que tu l'aura lue*, n'hésite pas à reposter ici si tu coinces !-)
PS : Voilà le type de tableau XML envoyé :
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
(snip XML)
Mes deux centimes, Bruno
Pimousse
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
et un echo $r['Email'] ?
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
et un echo $r['Email'] ?
Gibier Jean-Charles
"Bruno Desthuilliers" a écrit dans le message news: 401d4109$0$32620$
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
(snip XML)
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
-- Jean-Charles Gibier [--- A mon grand dam, mon adresse est anti-spam ---] [Appliquez lui la formule magique sed -e "s/_*._//"] [Contribuez à une paie libre: http://www.phpaie.net]
"Bruno Desthuilliers" <bdesth.quelquechose@free.quelquepart.fr> a écrit dans
le message news: 401d4109$0$32620$626a54ce@news.free.fr...
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des
balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
(snip XML)
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec
PHP5 les variables peuvent être nativement affectées à partir de valeurs ou
d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il
nous faire profiter de son expérience ?
--
Jean-Charles Gibier
[--- A mon grand dam, mon adresse est anti-spam ---]
[Appliquez lui la formule magique sed -e "s/_*._//"]
[Contribuez à une paie libre: http://www.phpaie.net]
"Bruno Desthuilliers" a écrit dans le message news: 401d4109$0$32620$
Ce n'est pas un 'tableau XML', c'est un tableau de chaines contenant des balises XML. NB : lit plutôt le fichier d'un seul coup si c'est possible.
(snip XML)
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
-- Jean-Charles Gibier [--- A mon grand dam, mon adresse est anti-spam ---] [Appliquez lui la formule magique sed -e "s/_*._//"] [Contribuez à une paie libre: http://www.phpaie.net]
Eric Daspet
Gibier Jean-Charles wrote:
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
Concernant le XML et PHP5 je peux probablement aider, par contre je ne vois pas bien ce que tu veux dire avec en parlant de "variables nativement affectées ....".
Dans PHP5 on retrouve deux nouveaux modules XML, le premier est une implémentation DOM qui prendra la suite de domxml. La différence avec cette dernière c'est que le nouveau module vise l'implémentation complète et conforme des spécifications officielles. Rien de bien nouveau concernant les méthodes d'accès, donc.
Le second module est SimpleXML. Il s'agit en gros de transformer l'arbre XML en une architecture d'objets simples et un minimum de complexité.
Avec le code XML suivant : <a> <b> <c>texte 1<c> <d>texte 2</d> </b> <b attrib="valeur"> <c>texte 3<c> <c>texte 4</c> </b> <b2> test </b2> </a>
On pourra avoir un code du style :
// chargement du fichier XML, renvoie l'élément racine <a> $a = simplexml_load_file(...) ; // itérations à travers les éléments fils de <a> du nom de <b> foreach($a->b as $b) { // test de présence d'un attribut if ( isset($b['attrib']) ) { // lecture d'un attribut echo '<b> a l'attribut ', $b['attrib'], '<br>' ; } else { // lecture du contenu texte echo '<d> contient ', $b->d , '<br>' ; // écriture d'un attribut $b['hello'] = 'world' ; } } // écriture du fichier $a->asXML('fichier.xml') ;
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
-- Eric Daspet
Gibier Jean-Charles wrote:
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec
PHP5 les variables peuvent être nativement affectées à partir de valeurs ou
d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il
nous faire profiter de son expérience ?
Concernant le XML et PHP5 je peux probablement aider, par contre je ne
vois pas bien ce que tu veux dire avec en parlant de "variables
nativement affectées ....".
Dans PHP5 on retrouve deux nouveaux modules XML, le premier est une
implémentation DOM qui prendra la suite de domxml. La différence avec
cette dernière c'est que le nouveau module vise l'implémentation
complète et conforme des spécifications officielles. Rien de bien
nouveau concernant les méthodes d'accès, donc.
Le second module est SimpleXML. Il s'agit en gros de transformer l'arbre
XML en une architecture d'objets simples et un minimum de complexité.
Avec le code XML suivant :
<a>
<b>
<c>texte 1<c>
<d>texte 2</d>
</b>
<b attrib="valeur">
<c>texte 3<c>
<c>texte 4</c>
</b>
<b2> test </b2>
</a>
On pourra avoir un code du style :
// chargement du fichier XML, renvoie l'élément racine <a>
$a = simplexml_load_file(...) ;
// itérations à travers les éléments fils de <a> du nom de <b>
foreach($a->b as $b) {
// test de présence d'un attribut
if ( isset($b['attrib']) ) {
// lecture d'un attribut
echo '<b> a l'attribut ', $b['attrib'], '<br>' ;
} else {
// lecture du contenu texte
echo '<d> contient ', $b->d , '<br>' ;
// écriture d'un attribut
$b['hello'] = 'world' ;
}
}
// écriture du fichier
$a->asXML('fichier.xml') ;
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
Concernant le XML et PHP5 je peux probablement aider, par contre je ne vois pas bien ce que tu veux dire avec en parlant de "variables nativement affectées ....".
Dans PHP5 on retrouve deux nouveaux modules XML, le premier est une implémentation DOM qui prendra la suite de domxml. La différence avec cette dernière c'est que le nouveau module vise l'implémentation complète et conforme des spécifications officielles. Rien de bien nouveau concernant les méthodes d'accès, donc.
Le second module est SimpleXML. Il s'agit en gros de transformer l'arbre XML en une architecture d'objets simples et un minimum de complexité.
Avec le code XML suivant : <a> <b> <c>texte 1<c> <d>texte 2</d> </b> <b attrib="valeur"> <c>texte 3<c> <c>texte 4</c> </b> <b2> test </b2> </a>
On pourra avoir un code du style :
// chargement du fichier XML, renvoie l'élément racine <a> $a = simplexml_load_file(...) ; // itérations à travers les éléments fils de <a> du nom de <b> foreach($a->b as $b) { // test de présence d'un attribut if ( isset($b['attrib']) ) { // lecture d'un attribut echo '<b> a l'attribut ', $b['attrib'], '<br>' ; } else { // lecture du contenu texte echo '<d> contient ', $b->d , '<br>' ; // écriture d'un attribut $b['hello'] = 'world' ; } } // écriture du fichier $a->asXML('fichier.xml') ;
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
-- Eric Daspet
Frederic Jacquot
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
J'aurais aussi aimé savoir mais ma derniere tentative avec la beta de PHP5 n'a pas été concluante (segfault au chargement d'une page). Reste à être patient...
-- Frédéric
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec
PHP5 les variables peuvent être nativement affectées à partir de valeurs
ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut
il nous faire profiter de son expérience ?
J'aurais aussi aimé savoir mais ma derniere tentative avec la beta de PHP5
n'a pas été concluante (segfault au chargement d'une page). Reste à être
patient...
Un peut HS mais je me renseigne. D'après ce que j'ai cru comprendre avec PHP5 les variables peuvent être nativement affectées à partir de valeurs ou d'attributs de fichiers XML. Est ce exact ou rêve-je ? Quelqu'un peut il nous faire profiter de son expérience ?
J'aurais aussi aimé savoir mais ma derniere tentative avec la beta de PHP5 n'a pas été concluante (segfault au chargement d'une page). Reste à être patient...
-- Frédéric
Gibier Jean-Charles
"Eric Daspet" a écrit dans le message news: 401e5cd8$0$18973$
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
C'est exactement ça ;-) Aussi par variables nativement affectées je faisais référence à la fonction 'simplexml_load_file'. Par natif j' entend le fait que la fonction est définie dans le moteur de PHP5, ce n'est peut être pas le cas,mais dans ce cas c'est qu'elle fait partie partie d'une extention de PHP5. Mais quoiqu'il en soit c'est quasiment transparent pour l'utilisateur et ça c'est pas mal.
"Eric Daspet" <ganf-news@dreams4net.com> a écrit dans le message news:
401e5cd8$0$18973$636a55ce@news.free.fr...
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
C'est exactement ça ;-)
Aussi par variables nativement affectées je faisais référence à la fonction
'simplexml_load_file'.
Par natif j' entend le fait que la fonction est définie dans le moteur de
PHP5, ce n'est peut être pas le cas,mais dans ce cas c'est qu'elle fait
partie partie d'une extention de PHP5. Mais quoiqu'il en soit c'est
quasiment transparent pour l'utilisateur et ça c'est pas mal.
"Eric Daspet" a écrit dans le message news: 401e5cd8$0$18973$
Si ça ne répond pas à ta question n'hésites pas à repréciser ta question.
C'est exactement ça ;-) Aussi par variables nativement affectées je faisais référence à la fonction 'simplexml_load_file'. Par natif j' entend le fait que la fonction est définie dans le moteur de PHP5, ce n'est peut être pas le cas,mais dans ce cas c'est qu'elle fait partie partie d'une extention de PHP5. Mais quoiqu'il en soit c'est quasiment transparent pour l'utilisateur et ça c'est pas mal.
Etienne SOBOLE
"Largudon" a écrit dans le message de news:BC42DF66.25C%
Bonjour à tous. J'ai un gros blocage dans la création d'un site et je ne suis pas un pro du developpement...
alors la t'es mal barré parce que le XML c'est chiant
Voilà mon problème : J'envoie une requête à un web service : $r=@file("url__du_serveur?login=mon_login&password=mon_pw"); La réponse du serveur est un tableau XML. Le problème est que je n'arrive pas à en extraire les valeurs pour en faire
des variables PHP.
tu trouveras plein d'exemples la! http://fr2.php.net/manual/fr/function.xml-parse.php
echo ' '.$r.' ' me renvoie "Array" echo ' '.$r[Email].' ' ne me renvoie rien du tout... Comment faire ? Merci de votre aide.
le truc c'est de convertir ton fichier en arborescence d'objet PHP.
PS : Voilà le type de tableau XML envoyé : HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length
bonheur. de l'utf-8 bon ben sur la lancée, pense a utf8_decode. tu en auras beoin
Etienne
"Largudon" <largudon@free.fr> a écrit dans le message de
news:BC42DF66.25C%largudon@free.fr...
Bonjour à tous. J'ai un gros blocage dans la création d'un site et je ne
suis pas un pro du developpement...
alors la t'es mal barré parce que le XML c'est chiant
Voilà mon problème :
J'envoie une requête à un web service :
$r=@file("url__du_serveur?login=mon_login&password=mon_pw");
La réponse du serveur est un tableau XML.
Le problème est que je n'arrive pas à en extraire les valeurs pour en
faire
des variables PHP.
tu trouveras plein d'exemples la!
http://fr2.php.net/manual/fr/function.xml-parse.php
echo ' '.$r.' ' me renvoie "Array"
echo ' '.$r[Email].' ' ne me renvoie rien du tout...
Comment faire ? Merci de votre aide.
le truc c'est de convertir ton fichier en arborescence d'objet PHP.
PS : Voilà le type de tableau XML envoyé :
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
bonheur. de l'utf-8
bon ben sur la lancée, pense a utf8_decode. tu en auras beoin
"Largudon" a écrit dans le message de news:BC42DF66.25C%
Bonjour à tous. J'ai un gros blocage dans la création d'un site et je ne suis pas un pro du developpement...
alors la t'es mal barré parce que le XML c'est chiant
Voilà mon problème : J'envoie une requête à un web service : $r=@file("url__du_serveur?login=mon_login&password=mon_pw"); La réponse du serveur est un tableau XML. Le problème est que je n'arrive pas à en extraire les valeurs pour en faire
des variables PHP.
tu trouveras plein d'exemples la! http://fr2.php.net/manual/fr/function.xml-parse.php
echo ' '.$r.' ' me renvoie "Array" echo ' '.$r[Email].' ' ne me renvoie rien du tout... Comment faire ? Merci de votre aide.
le truc c'est de convertir ton fichier en arborescence d'objet PHP.
PS : Voilà le type de tableau XML envoyé : HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length
bonheur. de l'utf-8 bon ben sur la lancée, pense a utf8_decode. tu en auras beoin