2010-12-07 30 views
14

Je travaille avec l'API YouTube Data par PHP et demande un flux vidéo d'un utilisateur spécifique au format json. Le résultat après json_decode est le (exemple raccourci) suivant:Accéder à un objet PHP avec un signe dollar comme nom de noeud

stdClass Object 
(
    [version] => 1.0 
    [encoding] => UTF-8 
    [feed] => stdClass Object 
     (
      [xmlns] => http://www.w3.org/2005/Atom 
      [xmlns$media] => http://search.yahoo.com/mrss/ 
      [xmlns$openSearch] => http://a9.com/-/spec/opensearchrss/1.0/ 
      [xmlns$gd] => http://schemas.google.com/g/2005 
      [xmlns$yt] => http://gdata.youtube.com/schemas/2007 
    ) 
) 

Ma question est: comment puis-je accéder par exemple le noeud « xmlns média $ » avec PHP? Dans le signe dollar, ça ne marchera pas ou y a-t-il un moyen que je n'ai pas encore trouvé?

Répondre

29

Cela fonctionne:

echo $object->feed->{'xmlns$media'}; 

Vous pouvez dire json_decode pour retourner un tableau:

$array = json_decode($json, true); 
echo $array['feed']['xmlns$media']; 
3

Si vous utilisez des guillemets simples au lieu de guillemets, le signe dollar ne sera pas évalué. D'une manière générale, vous devriez prendre l'habitude d'utiliser les guillemets simples, sauf si vous avez vraiment besoin des guillemets doubles pour quelque chose (comme les valeurs hexagonales échappées)