2010-12-07 31 views
14

Ich arbeite mit der YouTube Data API per PHP und fordere einen Video-Feed von einem bestimmten Benutzer im JSON-Format an. Das Ergebnis nach json_decode ist das folgende (verkürzt Beispiel):Zugriff auf ein PHP-Objekt mit Dollarzeichen als Knotenname

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 
    ) 
) 

Meine Frage ist: Wie kann ich zum Beispiel Zugriff auf den Knoten „xmlns $ media“ mit PHP? Innerhalb des Dollar-Zeichens wird es nicht funktionieren oder gibt es einen Weg, den ich noch nicht bekommen habe?

Antwort

29

Dies funktioniert:

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

Alternativ können Sie sagen, json_decode, um ein Array zurückzugeben:

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

Wenn Sie einfache Anführungszeichen anstelle von doppelten Anführungszeichen verwenden, wird das Dollarzeichen nicht ausgewertet. Generell sollten Sie in der Gewohnheit, mit einfachen Anführungszeichen erhalten, wenn Sie wirklich doppelte Anführungszeichen für etwas (wie entkam Hex-Werte) müssen