|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
Bonjour
j'ai un objet $foo qui me retourne la valeur ci-dessous quand je fais un print_r (il s'agit d'un flux xml) Je voudrais atteindre directement sans boucle la valeur de href dans le 2eme tableau mais je ne vois pas comment faire. J'ai essayé avec echo $objet['href']; mais cela me renvoit la valeur de href dans le premier tableau, pas le deuxieme Est-ce que je suis obligé de faire une boucle sur la tableau du style donne moi la valeur de [href] si [rel]=enclosure Merci pour votre aide, ci-dessous le resultat de print_r($objet) Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
pour accéder directement à l'attribut, utilise $objet->href
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
ça ne renvoie rien
je ne comprends d'ailleurs pas comment on peut trouver plusieurs fois [@attributes] dans cet objet une idée? |
|
|
00
|
|
|
#4 | ||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Normalement vous pouvez l'atteindre directement mais la notion de "tableau" n'a aucune signification ici puisque le document XML possède une structure hiérarchique que l'on retrouve lors de l'exploitation avec une API et c'est d'autant plus vrai avec l'extension SimpleXML de par sa conception. Bref, il faudrait être plus précis et un exemple de document XML serait bien plus parlant.
Pour illustrer mes propos, soit le document XML suivant : Code XML :
Code :
$sxml = simplexml_load_file('mon_fichier.xml'); Code :
|
||||
|
|
00
|
|
|
#5 | ||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
merci, je fais effectivement marcher mon script dans le cadre d'une api dailymotion
Prenons donc un exemple avec une url et le flux atom associé http://www.dailymotion.com/atom/vide...ience_creation Code :
Code :
<link rel="enclosure" title="En chien de faience" width="320" height="240" href="http://www.dailymotion.com/swf/312avXBoEGleO7bVd" type="application/x-shockwave-flash"/> Code :
|
||||||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
essaye ça :
__________________
Modérateur PHP |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
merci beaucoup, ça marche!
![]() (en relisant le code ce matin, ça m'a semblé comme une évidence, j'avais trop la tête dans le guidon hier |
|
|
00
|
|
|
#8 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Un détail : l'emploi de cURL est dû à la valeur de la directive allow_url_fopen (Off) ? Parce que l'extension SimpleXML, sinon, est tout à fait capable de parser directement un document distant.
|
|
|
00
|
|
|
#9 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
Citation:
Il est vrai que cURL nécessite d'être activé sur le serveur, mais en terme de performance et de temps d'execution (et en nombre de lignes de code), j'ai le même résultat qu'avec fopen() pour récupérer le document à parser... Si vous avez un avis là dessus en terme de "meilleure" pratique, ça m'interesse grandement |
|
|
|
00
|
|
|
#10 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Lorsque allow_url_fopen est à On, il y a plus simple :
Code :
|
||
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 74 ![]() |
c'est parfait, merci beaucoup
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com