分页方法

来源:互联网 发布:win10内存优化软件 编辑:程序博客网 时间:2024/04/30 00:40
<?php /** *@param int $pageSum 总页 *@param int $page 当前页 *@param int $num_links 当前页码的前面和后面的“数字”链接的数量 *@return array $pagination  **/function paginator($pageSum,$page,$num_links=4){    $plist = [];    $pageList = [];    $prev = [];    $next = [];    for ($i=1; $i <= $pageSum; $i++) {         if ($i == $page) {            $isCurrent = true;        } else {            $isCurrent = false;        }        $pageArr = [            'page' => $i,            'url' => $_SERVER['PHP_SELF']."?page={$i}",            'isCurrent' => $isCurrent        ];        array_push($plist,$pageArr);    }    if ($page > 1) {        $p = $page - 1;        $prev  = [            'page' => $p,            'url' => $_SERVER['PHP_SELF']."?page={$p}",            'isCurrent' => false        ];    }    if ($page < $pageSum) {        $p = $page + 1;        $next  = [            'page' => $p,            'url' => $_SERVER['PHP_SELF']."?page={$p}",            'isCurrent' => false        ];    }    $pageStart = $page - $num_links;    $pageEnd = $page + $num_links;    for ($i = $pageStart; $i <= $pageEnd; $i++) {        if ($i < 1 || $i > $pageSum) {            continue;        }        array_push($pageList,$plist[$i-1]);    }    $pagination = [        'total'    => $pageSum,        'pageList' => $pageList,        'prev'     => $prev,        'next'     => $next    ];    return $pagination;}
0 0
原创粉丝点击