2

编辑:

<?php
    $file= 'fbplus.jpg';

    $args = array(
       'message' => $album_message,
    );
    $args[basename($file)] = '@' . realpath($file);
    $ch = curl_init();
    $url = $graph_url;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
    $data = curl_exec($ch);
    //returns the photo id
    print_r(json_decode($data,true));


    echo "$data['id'] "; //wont work
        echo "$data[id] "; //wont work


?>

这是我成功上传照片后的回报。

数组([id] => 112235735579158 [post_id] => 100003781972892_112203478915717)

4

2 回答 2

2

curl_exec()返回一个字符串(网页的内容),而不是Array. 所以你不能这样做$data['id'],因为$data它是一个字符串而不是一个数组。

你发帖的网址是什么?它的确切输出是什么?

编辑:看起来 url 返回 JSON。在这种情况下:

<?php
    $file= 'fbplus.jpg';

    $args = array(
       'message' => $album_message,
    );
    $args[basename($file)] = '@' . realpath($file);
    $ch = curl_init();
    $url = $graph_url;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
    $data = curl_exec($ch);
    //returns the photo id

    $data = json_decode($data,true);

    echo $data['id'];
?>
于 2012-04-28T10:48:48.413 回答
0

您正在访问 Facebook Graph API 吗?

如果是这样,只需使用:

$data = json_decode($data);

你可以通过它访问它$data->id

于 2012-04-28T10:49:47.373 回答