PHP: как вывести определённое количество файлов (например, картинок) из каталога?

Это код модели:

public function getFiles(array $params = []) : array
{   
    $path = '../Public/img/';
    $files = scandir($path);
    
    if (isset($params['limit'])) {
        $files = " " . $params['limit'];
    }
    if (isset($params['offset'])) {
        $files = " " . $params['offset'];
    }

    return $files;
}

Это контроллер:

public function listFiles(HTTPRequest $req): void
{


    $limit = 5;
    $page = $req->getData('page');
    $itemsTotal = $this->fileManager->count();
    $paginator = new \App\Model\Paginator('/admin/listFiles', $page, $limit, $itemsTotal);
    $offset = $paginator->offset();
    $files = $this->fileManager->getFiles([
        'limit' => $limit,
        'offset' => $offset
    ]);
    $this->show('../App/View/listFiles.php', compact('files', 'paginator'));
}

А это вид:

<?php foreach ($files as $file) : ?>
    <?php $file_l = strtolower($file) ?>
    <?php if ($file != "." && $file != "..") : ?>
        <?php if (strpos($file_l, '.jpg')  > 0) : ?>
            <img src="../Public/img/<?= $file ?>" alt="" />
        <?php endif ?>
    <?php endif ?>
<?php endforeach ?>

Собственно, проблема в том, что выводит всё сразу, пагинация создаётся из ссылок на 5 страниц (как limit). Что я делаю не так?


Ответы (0 шт):