仿淘宝写的一个php分页函数

function formatPage($total, $page,  $pageSize){

    $str = '';
    $u = '?';
    foreach($_GET as $key=>$val){
        if($key!='page') $u.=$key.'='.$val.'&';
    }
    $url = 'http://'.$_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"].$u;
    if($page>1){
        $str = '<li><a href="'.$url.'page=1"><span>上一页</span></a></li>';
    }else{
        $str = '<li class="first"><span>上一页</span></li>';
    }
    $endPage = ceil($total/$pageSize);

    $temp = array();
    if($endPage>5){
        $temp[1] = 1;
        $temp[2] = 2;
        //$temp[3] = 3;
        //$temp[4] = 4;
    }
    if($page>7) $temp[3] = "...";
    for($i=1;$i<=$endPage;$i++){
        if($i>$page-5 && $i<$page+5){
            $temp[$i] = $i;
        }
    }
    if(!isset($temp[$endPage-2]) && $endPage>5) $temp[$endPage-2] = "...";

    if($endPage>5){
        $temp[$endPage-1] = $endPage-1;
        $temp[$endPage] = $endPage;
    }

    foreach($temp as $key=>$i){
        if($i==$page){
            $str.= '<li class="current">'.$i.'</li>';
        }else{
            if($i=='...'){
                $str.="<li style=\"border:0px;\">...</li>";
            }else{
                $str.= '<li><a href="'.$url.'page='.$i.'"> '.$i.' </a></li>';
            }

        }

    }
    if($page<$endPage){
        $str.= '<li><a href="'.$url.'page='.($page+1).'"> <span>下一页</span> </a></li>';
    }else{
        $str.= '<li class="last">下一页</li>';
    }
    return $str;

}


你可能感兴趣的:(仿淘宝写的一个php分页函数)