2017-06-21 27 views
1

我正在使用下面的腳本來顯示來自Instagram的基於標籤的圖像。它完美地工作,並列出了Instagram提供的所有圖像 - 最多20個圖像。PHP:循環 - 如何添加最大項目

但是,我希望能夠少顯示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

「某種變數」就像一個國家之三? – j08691

+0

是的,如: $ noOfImages = 12; - 然後foreach只會遍歷12張圖片。 – Meek

回答

0

,如果你想顯示1-12圖像和其他未再使用計數器。在此代碼中,如果計數器大於12,那麼循環會中斷,因此只會顯示1-12圖像

$count = 0; 
foreach ($json->entry_data->TagPage{0}->tag->media->nodes AS $item) { 
    if($count >= 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>"; 
$count++;  
} 
+0

Exacly是這樣的。非常感謝。 – Meek

+0

歡迎您進行 –

+0

@Meek如果它幫助你,那麼你可以給我投票。 –

0

簡單。使用計數器變量。

$loop_count = 0; 
$max = 12; 
foreach ($things as $thing) { 
    if ($loop_count >= $max) { 
     break; 
    } 

    // Do loop logic here 

    $loop_count++; 
} 
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>"; 
} 
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>"; 
    } 
    ?>