从cURL中提取的数组中获取值

时间:2016-12-23 13:36:43

标签: php facebook-graph-api curl multidimensional-array

我有以下网址。

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

现在我想从数组中获取 source 并将其放入图像标记。如下。

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

我是这样想的,但没有得到消息来源。

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

如何获取循环源并显示所有图像?

3 个答案:

答案 0 :(得分: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.'"/>';
    }
}

答案 1 :(得分: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'] .'"/>';
    }
}

答案 2 :(得分:0)

您需要循环播放相册,然后循环播放这些相册中的照片,例如:

$albums = $json["albums"];

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