while循环添加结束div,如果$ i%7!= 0&& $ i =文件总数

时间:2015-01-19 17:12:11

标签: php

PHP代码:

<?php
    $files = glob("../Desktop/IMG/BananzaNews/Thumbs/*.*");
    echo '<div class="Wrapper">'; //First tab
    $t = 0;
    for ($i=0; $i<count($files); $i++)
    {
        $root = "http://www.rafflebananza.com/";
        $imagePath = $files[$i];
        $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $imagePath);
        $imageName = str_replace("../Desktop/IMG/BananzaNews/Thumbs/", "", $withoutExt);

        if( $i % 8 == 0 ) {
            $t = $t + 1;
            echo '<div id="Tab_'.$t.'" class="Tabs"><h1>Tab_'.$t.'</h1>'; //hidden class
        }

        echo '<div class="UploadedImgs">
                <div class="ImgName">'.$imageName.'</div>
                <div class="IMG">
                    <img src="'.$root.$imagePath.'" alt="'.$imageName.'" />
                </div>
            </div>';

        if( $i > 0 && $i % 7 == 0 ) {
            echo '</div>';
        } elseif( $i == count($files) ) {
            echo '</div>';
        }
    }
    echo '<div class="TabSwitcher">';
    for ($i=0; $i<count($files); $i++)
    {
        if( $i % 8 == 0 ) {
            echo '<h1>'.$i.'</h1><a href="'.$i.'" class="tab-switcher">'.$i.'</a>';
        }
    }
    echo '</div></div>'; //closes last div
?>

问题:

if( $i > 0 && $i % 7 == 0 ) {
    echo '</div>';
} elseif( $i == count($files) ) {
    echo '</div>';
}

如果$ 1等于文件数量且不是7的倍数,那么它应该添加一个结束标记,但事实并非如此。我if() { }(先前尝试)或elseif( ) { }的尝试无效。

您可以看到我的代码输出here

1 个答案:

答案 0 :(得分:1)

$ i永远不会等于你的elseif条件中的count($ files)因为你的for循环条件设置为$ i&lt;计数($文件)

校正:

else if($i == count($files) - 1) {
    echo "</div>";
}