php分页类 简单的分页代码 _爱资料
主页 > 编程资料 > PHP >
发布时间:2015-11-04 作者:网络 阅读:136次
/*
 * 分页代码输出
 * $count总数
 * $page当前页数 1开始
 */

function show_page($count, $page, $page_size = 10) {
    $page_count = ceil($count / $page_size);  //计算得出总页数

    $init = 1;
    $page_len = 7;
    $max_p = $page_count;
    $pages = $page_count;

    //判断当前页码
    $page = (empty($page) || $page < 0) ? 1 : $page;
    //获取当前页url
    $url = $_SERVER['REQUEST_URI'];
    
    //去掉url中原先的page参数以便加入新的page参数
    $parsedurl = parse_url($url);
    $url_query = isset($parsedurl['query']) ? $parsedurl['query'] : '';
    if (!empty($url_query)) {
        $url_query = str_replace("&page=$page", '', $url_query);  
        $url = str_replace($parsedurl['query'], $url_query, $url);
        if ($url_query != '') {
            $url .= '&';
        }
    } else {
        $url .= '?';
    }

    //分页功能代码
    $page_len = ($page_len % 2) ? $page_len : $page_len + 1;  //页码个数
    $pageoffset = ($page_len - 1) / 2;  //页码个数左右偏移量

    $navs = '';
    if ($pages != 0) {
        if ($page != 1) {
            $navs.="<li ><a href=\"" . $url . "page=1\" aria-label=\"Previous\"><span aria-hidden=\"true\">首页</span></a></li>";        //第一页
            $navs.="<li><a href=\"" . $url . "page=" . ($page - 1) . "\">上一页</a></li>"; //上一页
        } else {
            $navs .= "<li ><a href=\"javascript:\" aria-label=\"Previous\"><span aria-hidden=\"true\">首页</span></a></li>";
            $navs .= "<li ><a href=\"javascript:\" aria-label=\"Previous\"><span aria-hidden=\"true\">上页</span></a></li>";
        }
        if ($pages > $page_len) {
            //如果当前页小于等于左偏移
            if ($page <= $pageoffset) {
                $init = 1;
                $max_p = $page_len;
            } else {  //如果当前页大于左偏移
                //如果当前页码右偏移超出最大分页数
                if ($page + $pageoffset >= $pages + 1) {
                    $init = $pages - $page_len + 1;
                } else {
                    //左右偏移都存在时的计算
                    $init = $page - $pageoffset;
                    $max_p = $page + $pageoffset;
                }
            }
        }
        for ($i = $init; $i <= $max_p; $i++) {
            if ($i == $page) {
                $navs.="<li class=\"active\"><a href=\"javascript:\">$i</a></li>";
            } else {
                $navs.=" <li><a href=\"" . $url . "page=" . $i . "\">$i</a></li>";
            }
        }
        if ($page != $pages) {
            $navs.="<li><a href=\"" . $url . "page=" . ($page + 1) . "\">下页</a></li>"; //下一页
            $navs.="<li><a href=\"" . $url . "page=" . $pages . "\" aria-label=\"Next\">末页</a></li>";    //最后一页
        } else {
            $navs.="<li><a href=\"javascript:\">下页</a></li>"; //下一页
            $navs.="<li><a href=\"javascript:\" aria-label=\"Next\">末页</a></li>";    //最后一页
            $navs.="<li><span class=\"pageinfo\">总页数:$page_count</li>";    //最后一页
        }
        return $navs;
    }
}


关键字词: