PHP分頁有很多方法,今天我們就用一個小例子演示一下這個功能。
復制代碼 代碼如下:
$result = "<div class=\"page-num\"><ul class=\"fn-clear\">";
// 上一頁
if ($offset>0) {
$result .= "<li>
<a href=\"".$url.'offset='.($offset-$maxrow)."\">Prev</a>
</li>";
}
$pages = $allPageNums; //總頁數
$page = $curPage; //當前頁數
$page_len = 9;
$page_len = ($page_len%2)?$page_len:$pagelen+1;//頁碼個數
$pageoffset = ($page_len-1)/2;//頁碼個數左右偏移量
if($pages>$page_len){
//如果當前頁小於等於左偏移
if($page<=$pageoffset){
$init=1;
$max_p = $page_len;
}else{//如果當前頁大於左偏移
//如果當前頁碼右偏移超出最大分頁數
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
$max_p = $pages;
}else{
//左右偏移都存在時的計算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
} else {
$init = 1;
$max_p = $pages;
}
for($i=$init; $i<=$max_p; $i++) {
if ( $i == $curPage ) {
$result .= "<li class=\"on\"><a href=\"".$url.'offset='.($i*$maxrow)."\" >$i</a></li>";
continue;
}
$result .= "<li><a href=\"".$url.'offset='.(($i-1)*$maxrow)."\">$i</a></li>";
}
// 打印下一頁
if ( $allnums > ($offset+$maxrow) ) {
$result .= "<li>
<a href=\"".$url.'offset='.($offset+$maxrow)."\">Next</a>
</li>";
}