|
分頁(yè)頁(yè)碼顯示算法
復(fù)制代碼 代碼如下:
/**
* 獲取分頁(yè)的HTML內(nèi)容
* @param integer $page 當(dāng)前頁(yè)
* @param integer $pages 總頁(yè)數(shù)
* @param string $url 跳轉(zhuǎn)url地址 最后的頁(yè)數(shù)以 '&page=x' 追加在url后面
*
* @return string HTML內(nèi)容;
*/
public static function getPageHtml($page, $pages, $url){
//最多顯示多少個(gè)頁(yè)碼
$_pageNum = 5;
//當(dāng)前頁(yè)面小于1 則為1
$page = $page<1?1:$page;
//當(dāng)前頁(yè)大于總頁(yè)數(shù) 則為總頁(yè)數(shù)
$page = $page > $pages ? $pages : $page;
//頁(yè)數(shù)小當(dāng)前頁(yè) 則為當(dāng)前頁(yè)
$pages = $pages < $page ? $page : $pages;
//計(jì)算開始頁(yè)
$_start = $page - floor($_pageNum/2);
$_start = $_start<1 ? 1 : $_start;
//計(jì)算結(jié)束頁(yè)
$_end = $page + floor($_pageNum/2);
$_end = $_end>$pages? $pages : $_end;
//當(dāng)前顯示的頁(yè)碼個(gè)數(shù)不夠最大頁(yè)碼數(shù),在進(jìn)行左右調(diào)整
$_curPageNum = $_end-$_start+1;
//左調(diào)整
if($_curPageNum<$_pageNum && $_start>1){
$_start = $_start - ($_pageNum-$_curPageNum);
$_start = $_start<1 ? 1 : $_start;
$_curPageNum = $_end-$_start+1;
}
//右邊調(diào)整
if($_curPageNum<$_pageNum && $_end<$pages){
$_end = $_end + ($_pageNum-$_curPageNum);
$_end = $_end>$pages? $pages : $_end;
}
$_pageHtml = '<ul class="pagination">';
/*if($_start == 1){
$_pageHtml .= '<li><a title="第一頁(yè)">«</a></li>';
}else{
$_pageHtml .= '<li><a title="第一頁(yè)" href="'.$url.'&page=1">«</a></li>';
}*/
if($page>1){
$_pageHtml .= '<li><a title="" href="'.$url.'&page='.($page-1).'">«</a></li>';
}
for ($i = $_start; $i <= $_end; $i++) {
if($i == $page){
$_pageHtml .= '<li class="active"><a>'.$i.'</a></li>';
}else{
$_pageHtml .= '<li><a href="'.$url.'&page='.$i.'">'.$i.'</a></li>';
}
}
/*if($_end == $pages){
$_pageHtml .= '<li><a title="最后一頁(yè)">»</a></li>';
}else{
$_pageHtml .= '<li><a title="最后一頁(yè)" href="'.$url.'&page='.$pages.'">»</a></li>';
}*/
if($page<$_end){
$_pageHtml .= '<li><a title="" href="'.$url.'&page='.($page+1).'">»</a></li>';
}
$_pageHtml .= '</ul>';
echo $_pageHtml;
}
php技術(shù):php實(shí)現(xiàn)的漂亮分頁(yè)方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。