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取得したデータ全体をプレーンテキストとして出力します。

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

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

4

1 に答える 1

1

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

json_decode

2 番目のパラメーターは、オブジェクトの代わりに連想配列を返すようにします。次に、値を取得します。

$ids = array_values(json_decode($string, true));
于 2012-05-12T04:44:38.340 に答える