2012-05-12 21 views
0
$url = "https://graph.facebook.com/fql?q=SELECT%20uid2%20FROM%20friend%20WHERE%20uid1=me()&access_token=sadfasdf"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 
$string = curl_exec($ch); // grab URL and pass it to the browser 
echo $string; 
curl_close($ch); 

現在、echo $stringはプレーンテキストとして取得されたデータ全体を出力します。PHP:JSON文字列から特定のデータを取得

{ "data": [ 
    { "uid2": "91298391" }, 
    { "uid2": "00291509" }, 
    { "uid2": "101927261" } 
]} 

JSONと同様の特定のデータを代わりに取得するにはどうすればよいですか?この場合、私はすべてのIDをつかむことができるようにしたい。私はpreg_matchを使用する気がしますが、私は困惑しています。

答えて

1

phpにはjson文字列を配列に変換する組み込み関数があります。

json_decode

2番目のパラメータには、それは代わりにオブジェクトの連想配列をあなたにお返しします。次に、値をつかんでください:

$ids = array_values(json_decode($string, true)); 
+0

特定のIDを取得するには、どのように '$ ids'を操作できますか? – Aaron

+0

'print_r($ ids)'を試してみてください。この場合、 '$ ids [1] ['uid2']'は2番目の項目を取得します。 –

関連する問題