2011-01-14 11 views
1

Nichts wird auf dem Bildschirm angezeigt, ist dieser gültige Code unten? Ich weiß, es gibt einen JSON-Parameter namens "Text" innerhalb der empfangenen Daten, aber nicht sicher, wie es ausdrucken?JSON mit PHP ausdrucken

<?php 
    $url='http://twitter.com/statuses/user_timeline/twostepmedia.json'; //rss link for the twitter timeline 
    //print_r(get_data($url)); //dumps the content, you can manipulate as you wish to 
    $obj = json_decode($data); 
    print $obj->{'text'}; 
    /* gets the data from a URL */ 

    function get_data($url) 
    { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
    } 
    ?> 
+2

Do 'print_r ($ obj)', um die tatsächliche Struktur zu sehen. Auf den ersten Blick ist der gesamte JSON in ein Array eingebunden, also könnte es eher $ obj [0] -> text' sein. – mario

+1

Beginne damit zu schauen, was '$ obj' enthält, und geh von dort. –

Antwort

5

sollte diese Arbeit:

$obj = json_decode(get_data($url)); 
$text = $obj[0]->text; 

Es ist eine gute Idee, so etwas wie var_dump($obj) versuchen, wenn Sie in ein Problem wie folgt ausführen. Danach wird sofort klar, $obj[0]->text ist was du willst.

@ benhowdle89 Kommentar:

foreach ($obj as $item) { 
    $text = $item->text; 
} 
+0

Das ist der eine, danke mfonda, wie würde ich das in eine Schleife legen, damit es den ganzen "Text" ausdruckt? – benhowdle89

+0

Danke nochmal! hat mir geholfen – benhowdle89

1

sollten Sie den Wert von get_data einer Variablen zurück zuweisen und übergeben es heißt json_decode .:

<?php 
    $url='http://twitter.com/statuses/user_timeline/twostepmedia.json'; //rss link for the twitter timeline 
    //print_r(get_data($url)); //dumps the content, you can manipulate as you wish to 
    $data = get_data($url); 
    $obj = json_decode($data); 
    print $obj->text; 
    /* gets the data from a URL */ 

    function get_data($url) 
    { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
    } 
    ?> 
0

$data nicht gesetzt ist, und Sie müssen nicht die geschweiften Klammern müssen.