Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2007, 20h38   #1
Invité régulier
 
Inscription : avril 2006
Messages : 33
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 33
Points : 8
Points : 8
Par défaut Caractères spéciaux dans le nom d'une variable

Bonjour à tous

Je code en php et j'ai un problème lorsque je dois manipuler un tableau $item, dont l'un des champs s'appelle "dc:date".
Donc lorsque je veux accéder à $item->dc:date, j'ai une erreur de syntaxe..à cause du ":".

Je ne peux malheureusement pas modifier le nom "dc:date" (il s'agit d'une balise xml)
avez vous une idée pour pouvoir gérer ça ?
Cartouche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 21h26   #2
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Tu fais un mysql_fetch_array() si ça vient d'une bdd.

Sinon, dans une classe, quand tu fais $truc->machin, c'est soit une fonction soit une variable, tu leurs donnent le nom que tu veux.
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 21h34   #3
Invité régulier
 
Inscription : avril 2006
Messages : 33
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 33
Points : 8
Points : 8
Merci de vos réponses
d'abord, ça ne vient pas d'une base de donnée, en faite je parse un fichier xml (un flux rss) grâce à SimpleXML, et lorsque je parcours chacun des items, je dois manipuler chacune des balises, et il se trouve qu'une d'elle se nomme "dc:date"..
Cartouche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 22h22   #4
Membre habitué
 
Avatar de SOAD08
 
Inscription : juillet 2004
Messages : 101
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2004
Messages : 101
Points : 104
Points : 104
Envoyer un message via MSN à SOAD08 Envoyer un message via Skype™ à SOAD08
c'est assez interessant comme question :/ :/

Peut-etre que PHP renome automatiquement ton champ pour lui enlever ses caractères speciaux, je dit surement une connerie mais ça vaut peut-être le coup de faire un print_r($ton_objet); pour voir le nom du champ.
__________________
www.cppreference.com ==> A lire pour vos problèmes touchant à la STL
www.php.net ==> A lire avant de demander le fonctionnement d'une fonction PHP

Alliance developpez Muzgo
SOAD08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 22h25   #5
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Si tu fais un var_dump de $item, je suis sur que tu auras la réponse à ta question...
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 23h05   #6
Invité régulier
 
Inscription : avril 2006
Messages : 33
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 33
Points : 8
Points : 8
Alors j'ai essayé le print_r et le var_dump, je ne parviens pas à interpréter le resultat, voilà ce que j'obtiens :
print_r
Code :
SimpleXMLElement Object ( [title] => SimpleXMLElement Object ( ) [link] => http://www.musiqueradio.com/article_news3823_mokobe-collabore-avec-patson-pour-enregistrer-c-est-dans-la-joie.php [description] => SimpleXMLElement Object ( ) [enclosure] => SimpleXMLElement Object ( [@attributes] => Array ( [url] => http://www.musiqueradio.com/images/news/mokobecestdanslajoie.jpg [length] => 6218 [type] => image/jpg ) ) )
var_dump
Code :
object(SimpleXMLElement)#225 (4) { ["title"]=> object(SimpleXMLElement)#247 (0) { } ["link"]=> string(113) "http://www.musiqueradio.com/article_news3823_mokobe-collabore-avec-patson-pour-enregistrer-c-est-dans-la-joie.php" ["description"]=> object(SimpleXMLElement)#176 (0) { } ["enclosure"]=> object(SimpleXMLElement)#177 (1) { ["@attributes"]=> array(3) { ["url"]=> string(64) "http://www.musiqueradio.com/images/news/mokobecestdanslajoie.jpg" ["length"]=> string(4) "6218" ["type"]=> string(9) "image/jpg" } } }
l'item qui est décrit ici correspond à cela en xml :
Code :
1
2
3
4
5
6
7
8
9
10
<item>
<title><![CDATA[Mokobé collabore avec Patson pour enregistrer "C'est Dans La Joie"]]></title>
<link>http://www.musiqueradio.com/article_news3823_mokobe-collabore-avec-patson-pour-enregistrer-c-est-dans-la-joie.php</link>
<dc:date>2007-05-10T14:46+01:00</dc:date>
<dc:creator>Team Musique Radio</dc:creator>
<dc:subject><![CDATA[Rap/R'n'B/Ragga]]></dc:subject>
<description><![CDATA[ Suite &agrave; l'actualit&eacute; publi&eacute;e le 20 avril, Mokob&eacute; Traor&eacute;, aka Mokob&eacute;, membre fondateur du 113 et tr&egrave;s impliqu&eacute; dans l'image m&eacute;diatique du groupe parisien, pr&eacute;sente aujourd'hui aux radios &laquo; C'est Dans La Joie &raquo;, le...]]></description>
<content:encoded><![CDATA[<p> Suite &agrave; l'actualit&eacute; publi&eacute;e le 20 avril, Mokob&eacute; Traor&eacute;, aka Mokob&eacute;, membre fondateur du 113 et tr&egrave;s impliqu&eacute; dans l'image m&eacute;diatique du groupe parisien, pr&eacute;sente aujourd'hui aux radios &laquo; C'est Dans La Joie &raquo;, le...</p>]]></content:encoded>
<enclosure url="http://www.musiqueradio.com/images/news/mokobecestdanslajoie.jpg" length="6218" type="image/jpg" />
</item>
donc on retrouve bien le title et link, mais quand on arrive à dc:date .. il le saute et passe à description, je comprend plus
Cartouche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 23h37   #7
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
En fait tu consommes un flux xml qui contient des namespaces, et ça ne se lit pas naturellement avec SimpleXML.
Tiens j'ai trouvé ça pour toi :
http://www.sitepoint.com/blogs/2005/...nd-namespaces/
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 23h51   #8
Invité régulier
 
Inscription : avril 2006
Messages : 33
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 33
Points : 8
Points : 8
Merci beaucoup M. N et les autres, en faisant :
Code :
1
2
3
 
$ns_dc = $item->children('http://purl.org/dc/elements/1.1/'); 
echo $ns_dc->date;
ça marche parfaitement, merci

Cordialement.
Cartouche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h22.


 
 
 
 
Partenaires

Hébergement Web