php實(shí)現(xiàn)分頁工具類分享
更新時(shí)間:2014年01月09日 14:30:17 作者:
本文分享一個(gè)php實(shí)現(xiàn)的分頁工具類,代碼內(nèi)有注釋,大家參考使用吧
代碼:
復(fù)制代碼 代碼如下:
/**
* 把中間的看成一個(gè)可以滑動的固定長度的尺子
*
* 把$this->_totalShowPages 當(dāng)成一個(gè)可以滑動的固定長度尺子,
* 然后$this->_totalPages就是一個(gè)給定長度的木塊,尺子在這個(gè)
* 木塊上滑動。情況兩種:
* 1. 尺子長度大于木塊長度,那么就直接輸出所有的頁碼;
* 2. 尺子長度小于木塊長度,那么就只用找到輸出這個(gè)尺子長度頁
* 數(shù)的起始點(diǎn)——$start, $end;
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumber()
{
$pageHtml = '';
//找到$start點(diǎn)
if($this->_curPage - 2 > 1) {
$start = $this->_curPage - 2;
} else {
$start = 1;
}
//找到$end 點(diǎn)
$end = $start + $this->_totalShowPages;
if($end >= $this->_totalPages) {
$end = $this->_totalPages;
$start = $end - $this->_totalShowPages; //保證頁面顯示的長度為$this->_totalShowPages
}
if($start != 1) {
$pageHtml .= $this->_getPageHtml(1);
$preMore = $this->_curPage - $this->_totalShowPages;
if($preMore < 1) {
$preMore = 1;
}
$pageHtml .= $this->_getMorePageHtml($preMore);
}
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
if($end != $this->_totalPages) {
$pageHtml .= $this->_getMorePageHtml($end);
}
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
return $pageHtml;
}
第一種老想法的代碼實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
/**
* 一步步的來
*
* @desc
*
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumberTwo()
{
if($this->_curPage < $this->_totalShowPages) {
for($page = 1; $page < $this->_totalShowPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
} else {
$pageHtml .= $this->_getNormalPageHtml(1);
if($this->_curPage == $this->_totalShowPages) {
$pageHtml .= $this->_getMorePageHtml(1);
} else {
$pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);
}
if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {
for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
} else {
$start = $this->_curPage - 2;
$end = $this->_curPage + $this->_totalShowPages - 2;
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
}
}
return $pageHtml;
}
相關(guān)文章
laravel 解決強(qiáng)制跳轉(zhuǎn) https的問題
今天小編就為大家分享一篇laravel 解決強(qiáng)制跳轉(zhuǎn) https的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10ubutu 16.04環(huán)境下,PHP與mysql數(shù)據(jù)庫,網(wǎng)頁登錄驗(yàn)證實(shí)例講解
下面小編就為大家?guī)硪黄猽butu 16.04環(huán)境下,PHP與mysql數(shù)據(jù)庫,網(wǎng)頁登錄驗(yàn)證實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07支付寶支付開發(fā)——當(dāng)面付條碼支付和掃碼支付實(shí)例
這篇文章主要介紹了支付寶支付開發(fā)——當(dāng)面付條碼支付和掃碼支付實(shí)例,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11laravel 數(shù)據(jù)驗(yàn)證規(guī)則詳解
今天小編就為大家分享一篇laravel 數(shù)據(jù)驗(yàn)證規(guī)則詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10