Я хочу добавить pagination мой «scandir» php-код, пожалуйста, помогите мне, как добавить разбивку на страницы в моем php-коде
вот мой код
<? // image extensions $extensions = array('3gp', 'mp4', 'png', 'gif', 'bmp'); // init result $result = array(); // directory to scan $directory = new DirectoryIterator('files/'.$_GET['dir'].''); // iterate foreach ($directory as $fileinfo) { // must be a file if ($fileinfo->isFile()) { // file extension $extension = strtolower(pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION)); // check if extension match if (in_array($extension, $extensions)) { // add to result $result[] = $fileinfo->getFilename(); } } } // print result foreach($result as $files) { echo "<div class='fl odd".(++$j%2==0 ? "2" : "")."'>"; echo '<a class="fileName" href="file.php?file=files/'.$_GET['dir'].'/'.$files.'"><div><div><img src="thumb.php?dir=files/'.$_GET['dir'].'/'.$files.'" width="80" height="80" alt="'.$files.'" /></div><div>'.$files.'<br/><span>[Size : 32.74Mb]</span><br/></div></div></a></div>';}
Теперь, пожалуйста, объясните мне, как добавить Pagination (Pages) в этот код, я хочу показать 10 результатов на страницу.
Попробуйте этот пример:
скажем, у нас есть файл index.php
$perpage = 10; $page = (int)$_GET['page']; if(!($page>0)) $page = 1; $offset = ($page-1)*$perpage; $extensions = array('3gp', 'mp4', 'png', 'gif', 'bmp'); $files = glob('files/'.$_GET['dir'].'/*.'.'{'.implode(',', $extensions).'}', GLOB_BRACE); $total_files = sizeof($files); $total_pages = ceil($total_files/$perpage); $files = array_slice($files, $offset, $perpage); ?> <div> SHOWING: <?=$offset?>-<?=($offset+$perpage)?> of <?=$total_files?> files </div> <?php foreach($files AS $file) : ?> <a class="fileName" href="file.php?file=files/<?=$_GET['dir']?>/<?=basename($file)?>"> <?=basename($file)?> </a> <?php endforeach; ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=(($page-1>1)?($page-1):1)?>"> << </a> <?php for($p=1; $p<=$total_pages; $p++) : ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=$p?>"> <?=$p?> </a> <?php endfor; ?> <a class="page" href="index.php?dir=<?=$_GET['dir']?>&page=<?=(($page+1>$total_pages)?$total_pages:($page+1)?>"> >> </a>
Он может работать, но вам нужно сделать некоторые изменения в качестве кода
$page_number = 1; $count = 10; $start_from = ($page_number - 1) * 10; $end = $start_from + $count;
отображать значения массива из $result[$start_from]
в $result[$end]
с использованием любого цикла.
Установите и отправьте следующий $page_number
из области отображения в вашу функцию ….