首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP分页功能有时会生成比所需更多的页面[最后一页是空的]。我该如何解决这个问题?

PHP分页功能有时会生成比所需更多的页面[最后一页是空的]。我该如何解决这个问题?
EN

Stack Overflow用户
提问于 2018-07-25 08:21:33
回答 1查看 70关注 0票数 0

我刚刚找到了一个分页功能来显示文件夹中的图像页面,但是当分页时,最后几页似乎是空的,我不想要这个。下面是我正在使用的代码:

代码语言:javascript
复制
<?php
    function show_pagination($current_page, $last_page){
        echo '<br><div>';
            echo ' <button type="button"><a href="?page=1">First Page</a></button> ';
            echo ' <button type="button"><a href="?page='.$last_page.'">Last Page</a></button> ';
        if( $current_page > 1 ){
            echo ' <button type="button"><a href="?page='.($current_page-1).'">&lt;&lt;Previous</a></button> ';
        }

        for($i = 1; $i <= $last_page; $i++){
            echo ' <button type="button"><a href="?page='.$i.'">'.$i.'</a></button> ';
        }

        if( $current_page < $last_page ){
            echo ' <button type="button"><a href="?page='.($current_page+1).'">Next&gt;&gt</a></button> ';
        }
        echo '</div><br>';
            echo '<div><p>Page '.$current_page.' out of '.$last_page.'</p></div><br>';
    }


    $folder = 'images/';
    $filetype = '*.*';
    $files = glob($folder.$filetype);
    $total = count($files);
    $per_page = 20;
    $last_page = (int)($total / $per_page);
    if(isset($_GET["page"])  && ($_GET["page"] <=$last_page) && ($_GET["page"] > 0) ){
        $page = $_GET["page"];
        $offset = ($per_page + 1)*($page - 1);
    }else{
        //echo "Page out of range showing results for page one";
        $page=1;
        $offset=0;
    }
    $max = $offset + $per_page;
    if($max>$total){
        $max = $total;
    }

    show_pagination($page, $last_page);
    for($i = $offset; $i< $max; $i++){
       $file = $files[$i];
       $path_parts = pathinfo($file);
       $filename = $path_parts['filename'];
       echo "<img src='$file' alt='$filename' style='border-style: solid;border-width: 2px;border-color: #4d94ff; margin: 5px'>";
    }
    show_pagination($page, $last_page);

        ?>

任何帮助解决这个小问题的人都将不胜感激。然而,我计算的最后一页似乎在某些情况下工作,但并不是在所有情况下工作,我不确定为什么。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51509243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档