2016-12-23 70 views
0

我有以下url。從cURL中提取數組中的值

$url="https://graph.facebook.com/v2.8/page_id?fields=albums%7Bphotos.fields(source)%7D&access_token=access_token"; 

並獲取這樣的數據。

$ch=curl_init(); 
CURL_SETOPT($ch,CURLOPT_URL,$url); 
CURL_SETOPT($ch,CURLOPT_RETURNTRANSFER, 1); 
$json=json_decode(curl_exec($ch),true); 

當我打印數據它看起來像下面。

Array 
(
[albums] => Array 
    (
     [data] => Array 
      (
       [0] => Array 
        (
         [photos] => Array 
          (
           [data] => Array 
            (
             [0] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/15622392_1822020618075402_5390943482972338844_n.png?oh=e51cddbae2c4f9ca6926487207349674&oe=58F32530 
               [id] => 1822020618075402 
              ) 

             [1] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/14695531_1788596578084473_7400591108780706934_n.jpg?oh=08e6f8301fd574edab84724005b5dcbd&oe=58DBBEB5 
               [id] => 1788596578084473 
              ) 

             [2] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/14729405_1787260094884788_470106074060850845_n.jpg?oh=a9cae794a571078709ddede6a0a25fb7&oe=58ECA3E5 
               [id] => 1787260094884788 
              ) 

             [3] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/14088463_1761208347489963_7246779259418379868_n.jpg?oh=3b86b61bd6eed58068d1ff55776fa5de&oe=58F47DEA 
               [id] => 1761208347489963 
              ) 

             [4] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t31.0-8/s720x720/14125030_1758545434422921_4678448833207945291_o.jpg?oh=0b7f1455568f2ea36c80824c4531d820&oe=58FA25E0 
               [id] => 1758545434422921 
              ) 

             [5] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/14067692_1755506721393459_3688009157574505621_n.jpg?oh=3fdf992a10562e7a62222424bbd7d284&oe=58DA3F4A 
               [id] => 1755506721393459 
              ) 

             [6] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/13882196_1747456648865133_5440996625655127273_n.jpg?oh=b0f40cfee6858cd45f62e55630f2ac74&oe=58EF172F 
               [id] => 1747456648865133 
              ) 

             [7] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/13782279_1745152582428873_8951006239758371779_n.jpg?oh=d329a7d4dd75975302708a147cf3f0e9&oe=58F14A03 
               [id] => 1745152582428873 
              ) 

             [8] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/13659216_1740388646238600_1705878934725863431_n.jpg?oh=1ed9492d4ae713587a96edf4f38893b1&oe=58DB8EE7 
               [id] => 1740388646238600 
              ) 

             [9] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/10885434_1516104578667009_8707702519302744521_n.jpg?oh=515cce8abab01bcdca68f14388664ae5&oe=58E0AEEB 
               [id] => 1516104578667009 
              ) 

             [10] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/1937451_1505417943069006_8760716891932748781_n.jpg?oh=7a2a2daef9b1be7d3c98b35748893ea6&oe=58DCA006 
               [id] => 1505417943069006 
              ) 

             [11] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-0/p180x540/10696291_1494026260874841_6924391974289072931_n.jpg?oh=df5d849e389d80c69c82118066445aa1&oe=58E08143 
               [id] => 1494026260874841 
              ) 

             [12] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/10171825_1493583504252450_5141485588957894327_n.jpg?oh=17b0b20487ebb34be29621c355dba628&oe=58F0739D 
               [id] => 1493583504252450 
              ) 

             [13] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/1513735_1492709627673171_1477328081447762519_n.jpg?oh=3012a617a0d48c4c736fc1e1ee428b26&oe=58EEAE38 
               [id] => 1492709627673171 
              ) 

             [14] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/1515003_1490905571186910_3127181473382908591_n.png?oh=83bcf6d52c83ecc05d40b478afe71cd9&oe=58F6D6B2 
               [id] => 1490905571186910 
              ) 

             [15] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/970678_1488554404755360_7889648772961232584_n.jpg?oh=3447943aeb630d6cfee3961e9bf8a444&oe=58E08CFE 
               [id] => 1488554404755360 
              ) 

             [16] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/10676246_1487619861515481_8080018536585231766_n.jpg?oh=c8e143320188e22170c1f28fa52fcfae&oe=58E6C546 
               [id] => 1487619861515481 
              ) 

             [17] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/q82/s720x720/10689897_1486654284945372_4989681801007970605_n.jpg?oh=d67a02472ce4aff6c32d443377a21e9a&oe=58E73B16 
               [id] => 1486654284945372 
              ) 

             [18] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t31.0-0/p180x540/10750146_1485256888418445_36234076640555733_o.jpg?oh=5e486c35cee8f4ecba8743948e6e4cb3&oe=58F9C0CE 
               [id] => 1485256888418445 
              ) 

             [19] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/560161_1484719421805525_2089957304428778741_n.jpg?oh=099d53b6aacfaa10b7a119c48179c1c3&oe=58E21E6C 
               [id] => 1484719421805525 
              ) 

             [20] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/1377050_1484034435207357_151327894676844014_n.jpg?oh=83eb8c6b25412b067b4a000fa5f97a99&oe=58F7DB51 
               [id] => 1484034435207357 
              ) 

            ) 

           [paging] => Array 
            (
             [cursors] => Array 
              (
               [before] => MTgyMjAyMDYxODA3NTQwMgZDZD 
               [after] => MTQ4NDAzNDQzNTIwNzM1NwZDZD 
              ) 

            ) 

          ) 

         [id] => 1484035021873965 
        ) 

       [1] => Array 
        (
         [photos] => Array 
          (
           [data] => Array 
            (
             [0] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/13782058_1742422396035225_5477589171813279082_n.png?oh=364dda35704379d15336ab1f9144659d&oe=58EA49E7 
               [id] => 1742422396035225 
              ) 

             [1] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/10350506_1484031238541010_5203658133196952315_n.jpg?oh=26dbeba4df1f650e4acbea3a1aad5164&oe=58EC962B 
               [id] => 1484031238541010 
              ) 

            ) 

           [paging] => Array 
            (
             [cursors] => Array 
              (
               [before] => MTc0MjQyMjM5NjAzNTIyNQZDZD 
               [after] => MTQ4NDAzMTIzODU0MTAxMAZDZD 
              ) 

            ) 

          ) 

         [id] => 1484031228541011 
        ) 

       [2] => Array 
        (
         [photos] => Array 
          (
           [data] => Array 
            (
             [0] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/13669028_1742420099368788_169584588534858741_n.jpg?oh=2ceec7f3f1890dfff93dfd097d9da11b&oe=58E9A3B8 
               [id] => 1742420099368788 
              ) 

             [1] => Array 
              (
               [source] => https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/10687154_1481995178744616_1243763385874632903_n.jpg?oh=0ed79383008455b3326d174dd5935b4b&oe=58FBB705 
               [id] => 1481995178744616 
              ) 

            ) 

           [paging] => Array 
            (
             [cursors] => Array 
              (
               [before] => MTc0MjQyMDA5OTM2ODc4OAZDZD 
               [after] => MTQ4MTk5NTE3ODc0NDYxNgZDZD 
              ) 

            ) 

          ) 

         [id] => 1481995338744600 
        ) 

      ) 

     [paging] => Array 
      (
       [cursors] => Array 
        (
         [before] => MTQ4NDAzNTAyMTg3Mzk2NQZDZD 
         [after] => MTQ4MTk5NTMzODc0NDYwMAZDZD 
        ) 

      ) 

    ) 

[id] => page_id 
) 

現在我想從陣列並把這個成圖像標籤。如下所示。

<img src="url_from the array for each picture"/> 

我想這樣,但沒有獲取源代碼。

foreach($json as $key){ 
    echo $key['source']; 
} 

我怎樣才能得到循環中的源代碼並顯示所有圖像?

回答

0

你需要循環的專輯,然後在這些相冊的照片,是這樣的:

$albums = $json["albums"]; 

foreach ($albums["data"] as $album) { 
    foreach($album["photos"]["data"] as $photo) { 
     echo $photo["source"]; 
    } 
} 
1

json_encode線改成這樣:$json=json_decode(curl_exec($ch));

然後訪問你的信息這樣:

foreach($json->albums->data as $album){ 
    foreach($album->photos->data as $photo){ 
     echo '<img src="'.$photo->source.'"/>'; 
    } 
} 
+0

其工作..你能解釋一下你是如何編寫這樣的代碼的嗎? –

+1

太棒了。這很簡單。你所要做的就是看你的結果。我喜歡使用'print_r'或'var_dump'來查看返回的數據。一旦你看到數據,你會意識到有鍵和值。有些值是字符串,有些是數組內的數組,使得結果成爲多維數組。然而,你並不需要把它變成一個數組,就像我指出的那樣,它最好能夠與對象一起工作。 – CodeGodie

0

這是一個多維數組。
它將所有相冊和照片返回。
通過使用下面的循環,並顯示所有圖像..

// for each Album 
foreach($json['albums']['data'] as $album) 
{ 
    // for each photos in current album 
    foreach($album['photos']['data'] as $photo) 
    { 
     echo '<img src="'. $photo['source'] .'"/>'; 
    } 
}