Instagram API脚本 - 计算图像并显示最多10个

时间:2017-05-13 13:45:12

标签: php api instagram

下面你可以看到我用来访问" api"并显示最多10张图片。到目前为止,这是有效的,但如果用户的图像少于10,则会出错。如何显示MAX 10图像,如果用户少于10,则只显示用户拥有的图像数量?

脚本:

<?php


    // Get data from Instagram User
    $url        = "https://www.instagram.com/wsj/media/";
    $instagramdata  = @file_get_contents($url);
    $instagramdata  = json_decode($instagramdata, true);


?><div class="instagramfeed"><?php

for($i = 0; $i < 10; $i++){
    $instagramimages = $instagramdata['items'][$i]['images']['standard_resolution']['url'];
    $instagrampage = $instagramdata['items'][$i]['code'];
    $instagramlikes = $instagramdata['items'][$i]['likes']['count'];



    ?><a href="http://instagram.com/p/<?=$instagrampage?>" target="_blank"><?php
    ?><div class="instagramimages" style="background:url(<?=$instagramimages?>)no-repeat center;background-size:cover;"><?php

    ?>
    <div class="instagramimagesoverlay">
        <span class="instagramimagesoverlaytext"><i class="fa fa-heart fa-1x" aria-hidden="true"></i>&nbsp;<?php echo $instagramlikes;?></span>
    </div>
    <?php



    ?></a><?php
    ?></div><?php



}
?>

1 个答案:

答案 0 :(得分:1)

你需要为数组中的项目数设置Count,有很多方法可以做到这一点,但这里有一个

你似乎还有一些不必要的<?php .. ?>对,所以我也删除了它们。

<?php
    // Get data from Instagram User
    $url            = "https://www.instagram.com/wsj/media/";
    $instagramdata  = @file_get_contents($url);
    $instagramdata  = json_decode($instagramdata, true);


?>
    <div class="instagramfeed">
<?php
    $cnt = count($instagramdata['items']) > 10 ? 10 : count($instagramdata['items']);
    for($i = 0; $i < $cnt; $i++){
        $instagramimages = $instagramdata['items'][$i]['images']['standard_resolution']['url'];
        $instagrampage = $instagramdata['items'][$i]['code'];
        $instagramlikes = $instagramdata['items'][$i]['likes']['count'];
?>
    <a href="http://instagram.com/p/<?=$instagrampage?>" target="_blank">
        <div class="instagramimages" style="background:url(<?=$instagramimages?>)no-repeat center;background-size:cover;">
        <div class="instagramimagesoverlay">
            <span class="instagramimagesoverlaytext"><i class="fa fa-heart fa-1x" aria-hidden="true"></i>&nbsp;<?php echo $instagramlikes;?></span>
        </div>
    </a>
    </div> <!-- this probably belongs outside the foreach loop-->
<?php
    }
?>