php實(shí)現(xiàn)的漂亮分頁(yè)方法
更新時(shí)間:2014年04月17日 11:31:43 作者:
這篇文章主要介紹了php實(shí)現(xiàn)的漂亮分頁(yè)方法,代碼很簡(jiǎn)單,需要的朋友可以參考下
分頁(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ì)算開(kāi)始頁(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="上一頁(yè)" 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="下一頁(yè)" href="'.$url.'&page='.($page+1).'">»</a></li>';
}
$_pageHtml .= '</ul>';
echo $_pageHtml;
}

相關(guān)文章
smarty簡(jiǎn)單分頁(yè)的實(shí)現(xiàn)方法
這篇文章主要介紹了smarty簡(jiǎn)單分頁(yè)的實(shí)現(xiàn)方法,以一個(gè)具體的實(shí)例講述了smarty分頁(yè)的完整實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2014-10-10
PHP使用Alexa API獲取網(wǎng)站的Alexa排名例子
這篇文章主要介紹了PHP使用Alexa API獲取網(wǎng)站的Alexa排名例子,需要的朋友可以參考下2014-06-06
在云虛擬主機(jī)部署thinkphp5項(xiàng)目的步驟詳解
thinkphp官網(wǎng)在去年的時(shí)候發(fā)布了tp的顛覆版本thinkphp5,tp5確實(shí)比之前的版本好用了很多,那么下面這篇文章就來(lái)給大家介紹關(guān)于在云虛擬主機(jī)部署thinkphp5項(xiàng)目的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-12-12
ThinkPHP 連接Oracle數(shù)據(jù)庫(kù)的詳細(xì)教程[全]
最近收集了一些關(guān)于THinkPHP連接Oracle數(shù)據(jù)庫(kù)的問(wèn)題,有很多朋友按照連接mysql的方法來(lái)操作,導(dǎo)致有一些方法在Oreale中無(wú)法正常使用2012-07-07
php數(shù)組應(yīng)用之比較兩個(gè)時(shí)間的相減排序
因網(wǎng)站需要實(shí)現(xiàn)兩個(gè)時(shí)間段的所有小說(shuō)的收藏,點(diǎn)擊等操作,特把同事寫(xiě)的代碼收藏下,以后有需要研究2008-08-08
YII CLinkPager分頁(yè)類擴(kuò)展增加顯示共多少頁(yè)
yii的分頁(yè)類CLinkPager默認(rèn)是不支持顯示共x頁(yè)的,那么現(xiàn)在接的項(xiàng)目有這樣的需求,怎么辦呢?下面通過(guò)本文給大家介紹YII CLinkPager分頁(yè)類擴(kuò)展增加顯示共多少頁(yè)的實(shí)例代碼,需要的朋友參考下吧2016-01-01
php二維數(shù)組用鍵名分組相加實(shí)例函數(shù)
php二維數(shù)組以鍵名進(jìn)行分組相加的實(shí)例程序2013-11-11

