2012-05-12 2 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? В этом случае я хочу иметь возможность захватить каждый идентификатор. У меня такое чувство, что я буду использовать preg_match, но я в тупике.

ответ

1

php имеет встроенную функцию для превращения строки json в массив.

json_decode

второй параметр позволяет дать вам обратно ассоциативный массив вместо объекта. Затем просто возьмите значения:

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

Как я могу манипулировать '$ ids' для захвата определенного идентификатора? – Aaron

+0

попробуйте 'print_r ($ ids)', чтобы убедиться сами. В этом случае '$ ids [1] ['uid2']' для получения второго элемента. –

Смежные вопросы