2012-04-28 57 views
2

編輯:Acessing在返回的數組

<?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)

+1

這不是一個協會。陣列?應該是'$ data ['id']'而不是'$ data [id]' – Smamatti 2012-04-28 10:48:40

+0

如果這是數組,那麼$ data ['id']應該工作。另外,請使用長時間打開的標籤。如果您在未啓用短打開標籤的服務器上停留一段時間,您可能會後悔。 – Corbin 2012-04-28 10:49:17

+1

@Smamatti,是的,在語法上,'id'應該用引號括起來,但這不是導致問題的原因。 – Nadh 2012-04-28 10:49:38

回答

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']; 
?> 
+0

我用這個print_r(json_decode($ data,true));輸出是Array([id] => 112265748909490 [post_id] => 100003781972892_112203478915717)。那麼爲什麼它是一個數組? – 2012-04-28 10:58:42

+0

啊,這是一個數組,因爲你使用'json_decode()',你在原來的問題中沒有提到它。 – Nadh 2012-04-28 11:04:06

+0

我將如何訪問陣列? – 2012-04-28 11:08:15

0

您是否正在訪問Facebook Graph API?

如果是這樣只需使用:

$data = json_decode($data); 

和您可以訪問它低谷$data->id

+0

這是我的第一種方法,但仍然$ data-> id是NULL。是圖api和$ data = json_decode($ data);已經在我的代碼中了。但仍然無法訪問數組 – 2012-04-28 10:54:38

+0

@Roxy,默認情況下,'json_decode()'返回一個對象。如果你想獲得一個數組,試試'json_decode($ data,true)' – Nadh 2012-04-28 10:59:50

+0

得到它。仍然無法訪問它。我編輯我的代碼頂部 – 2012-04-28 11:08:50