+ -
当前位置:首页 → 问答吧 → 从DZ提取出来的分页函数,自己修改了一些

从DZ提取出来的分页函数,自己修改了一些

时间:2008-10-22

来源:互联网

个人觉得DZ的分页函数不错,我做东西用的分页函数基本上都是用这个,自己修改了一下,去掉一些不必要的东西。分享一下。/**
* DZ分页函数
*
* @param   int      $num        总数
* @param   int      $perpage    每页显示数量
* @param   int      $curpage    当前页
* @param   string   $mpurl      传递的URL
* @param   int      $page       显示的页数,默认为10
*
* @return  string
*/
function multi($num, $perpage, $curpage, $mpurl, $page = 10) {
   
    $curpage = $curpage ? $curpage : 1;
    $multipage = '';
    $mpurl .= strpos($mpurl, '?') ? '&' : '?';
    $pages = 1;//总页数
    if($num > $perpage) {
        $offset = $page - 1;

        $pages = @ceil($num / $perpage);
        
        if($page > $pages) {
            $from = 1;
            $to = $pages;
        } else {
            $from = $curpage - $offset;
            $to = $from + $page - 1;
            if($from < 1) {
                $to = $page;//$curpage + 1 - $from;
                $from = 1;
                if($to - $from < $page) {
                    $to = $page;
                }
            } elseif($to > $pages) {
                $from = $pages - $page + 1;
                $to = $pages;
            }
        }
        
        $curpage = $curpage <= $pages ? $curpage : $pages;

        $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'page=1" class="first">1 ...</a>' : '').
            ($curpage > 1 ? '<a href="'.$mpurl.'page='.($curpage - 1).'" class="prev">‹‹</a>' : '');
        for($i = $from; $i <= $to; $i++) {
            $multipage .= $i == $curpage ? '<strong>'.$i.'</strong>' :
                '<a href="'.$mpurl.'page='.$i.'">'.$i.'</a>';
        }

        $multipage .= ($curpage < $pages ? '<a href="'.$mpurl.'page='.($curpage + 1).'" class="next">››</a>' : '').
            ($to < $pages ? '<a href="'.$mpurl.'page='.$pages.'" class="last">... '.$pages.'</a>' : '').
            ($pages > $page ? '<kbd><input type="text" name="custompage" size="3" /></kbd>' : '');

        $multipage = $multipage ? '<div class="pages">'.('<em> '.$num.' </em>').$multipage.'</div>' : '';
    }
   
    return $multipage;
}

附件含演示。

dz.jpg (4.15 KB)

下载次数:18

2008-10-22 17:21

作者: xanxin   发布时间: 2008-10-22

我用的也是这个,感觉很不错的

作者: Gareth   发布时间: 2008-10-22

作者: nianjin   发布时间: 2008-10-23

大道至简

作者: 0hudu   发布时间: 2008-10-25

支持

作者: kathy87   发布时间: 2008-10-26