PHP:循环 - 如何添加最大项目

时间:2017-06-21 13:29:14

标签: php instagram

我正在使用下面的脚本根据标签显示来自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>";
    }
  ?>

4 个答案:

答案 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>";
    }
  ?>