我正在使用下面的脚本根据标签显示来自Instagram的图片。它完美运行,并列出了Instagram可用的所有图像 - 最多20张图像。
但是,我希望能够显示更少,例如10或12张图像。
如何添加某种变量来保存最大项目值,以便foreach
循环不循环所有项目?
PHP:
<?php
// Enter hashtag;
$hashtag = "nofilter";
$url = "https://www.instagram.com/explore/tags/".$hashtag."/";
$instagram_content = file_get_contents($url);
preg_match_all('/window._sharedData = (.*)\;\<\/script\>/', $instagram_content, $matches);
$txt = implode('', $matches[1]);
$json = json_decode($txt);
foreach ($json->entry_data->TagPage{0}->tag->media->nodes AS $item) {
echo "<div class='imgbox'><a href='http://instagram.com/p/".$item->code."' target='_blank'><img class='hashtag' src='" . $item->display_src . "' alt=''></a></div>";
}
?>
答案 0 :(得分:0)
如果你想显示1-12个图像而不是其他,请使用计数器。在此代码中,如果计数器大于12,则循环将中断,因此仅显示1-12图像
heroku buildpacks:add --index 1 heroku/nodejs
答案 1 :(得分:0)
简单。使用计数器变量。
$loop_count = 0;
$max = 12;
foreach ($things as $thing) {
if ($loop_count >= $max) {
break;
}
// Do loop logic here
$loop_count++;
}
答案 2 :(得分:0)
使用for
循环:
for ($i = 0; $i < 12; $i++) {
$item = $json->entry_data->TagPage{0}->tag->media->nodes[$i];
echo "<div class='imgbox'><a href='http://instagram.com/p/".$item->code."' target='_blank'><img class='hashtag' src='" . $item->display_src . "' alt=''></a></div>";
}
答案 3 :(得分:0)
如果数组编号为索引,则此工作
foreach ( $list as $index => $value ) {
if ( $index > 12 ) break;
//do something
}
在您的情况下实施如下:
<?php
// Enter hashtag;
$hashtag = "nofilter";
$url = "https://www.instagram.com/explore/tags/".$hashtag."/";
$instagram_content = file_get_contents($url);
preg_match_all('/window._sharedData = (.*)\;\<\/script\>/', $instagram_content, $matches);
$txt = implode('', $matches[1]);
$json = json_decode($txt);
foreach ($json->entry_data->TagPage{0}->tag->media->nodes AS $index => $item) {
if ( $index > 12 ) break;
echo "<div class='imgbox'><a href='http://instagram.com/p/".$item->code."' target='_blank'><img class='hashtag' src='" . $item->display_src . "' alt=''></a></div>";
}
?>