下面你可以看到我用来访问" 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> <?php echo $instagramlikes;?></span>
</div>
<?php
?></a><?php
?></div><?php
}
?>
答案 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> <?php echo $instagramlikes;?></span>
</div>
</a>
</div> <!-- this probably belongs outside the foreach loop-->
<?php
}
?>