PHP:从JSON字符串中获取特定数据

时间:2012-05-12 04:32:03

标签: php curl preg-match preg-match-all

$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,但我很难过。

1 个答案:

答案 0 :(得分:1)

php有一个内置函数,用于将json字符串转换为数组。

json_decode

第二个参数使它返回一个关联数组而不是一个对象。然后抓住值:

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