Counter that every 20 images it prints a block

0

I'm making a page where you will have a slide, and each slide of that will have 20 photos, I found a code on the internet, where you just specify the folder where the images are and it generates all the code. The problem I'm facing is that to work properly, every 25 images it has to wrap these images with a class. Ex: I will exemplify here with the example of only 3 photos, it will stay like this

<div class="item">
imagem
imagem
imagem
</div>

<div class="item">
imagem
imagem
imagem
</div>

Here below I'll post the code I'm using

        <?php
    // variável que define o diretório das imagens
    $dir = "imagens/galeria/";
    $dh = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
        // verificando se o arquivo é .jpg
        if (substr($filename, -4) == ".jpg") {
            ?>
        <li><a  data-fancybox="galeria" href="<?php echo $dir; ?><?php echo $filename; ?>" style="background-image: url(<?php echo $dir; ?><?php echo $filename; ?>)"></a></li>
        <?php
    }
}
?>
    
asked by anonymous 13.06.2018 / 18:52

1 answer

1
<?php
    $contador = 0;
    $abreTag = TRUE;

    // variável que define o diretório das imagens
    $dir = "imagens/galeria/";
    $dh = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
        // verificando se o arquivo é .jpg
        if (substr($filename, -4) == ".jpg") {    
            if ($contador % 25 == 0 && $abreTag) {
                $abreTag = FALSE;
                $contador = 1;
        ?>
            <div class="bendita-classe">
        <?php
            } ?>
    <li><a  data-fancybox="galeria" href="<?php echo $dir; ?><?php echo $filename; ?>" style="background-image: url(<?php echo $dir; ?><?php echo $filename; ?>)"></a></li>
        <?php
            if ($contador % 25 == 0 && !$abreTag) {
                $abreTag = TRUE;
                $contador = -1;
        ?>
            </div>
        <?php 
            }
        $contador += 1;
    }
}
?>
    
13.06.2018 / 19:00