1

我正在使用图形 api 将我的 facebook 应用程序用户的个人资料图片设置为指定的宽度和高度。

网址: http: //graph.facebook.com/ '.$userid.'/picture?width=180&height=220

这将在 json 中返回类似 { "data": { "url": " https://fbcdn-profile-a.akamaihd.net/hprofile-ak-frc1/c0.0.553.676/s320x320/998591_136374463234627_573810314_n.jpg " ,“宽度”:262,“高度”:320,“is_silhouette”:假 } }

我想知道如何在 php 中解码它,最合适的是如何在返回的 json 字符串中获取“url”。感谢您的帮助。注意:我将 url 存储在 php 中的一个变量中,然后使用 url 从 jpeg(GD 库)中创建 imagecreate,然后使用该图像并将其与另一个图像合并。

4

1 回答 1

4

使用 json_decode 函数(http://php.net/manual/en/function.json-decode.php

它接受 json 字符串作为参数并返回数组或对象

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$obj = json_decode($json);
$array = json_decode($json, true);

然后,访问像

echo $obj->a;
echo $array['a'];

两者都会输出

1

在您的情况下,您可以通过这种方式访问​​网址

$obj = json_decode($your_fb_result);
echo $obj->data->url;

或者

$array = json_decode($your_fb_result, true);
echo $array['data']['url'];

具体到你的情况,

$response = file_get_contents('http://graph.facebook.com/'.$userid.'/picture?width=180&height=220&redirect=false');
$array = json_decode($response, true);
echo $array['data']['url'];

http://php.net/manual/en/function.file-get-contents.php

于 2013-07-19T10:45:31.470 回答