public function show2(){
if (0 == $this->totalRows)
return '';
$p = C('VAR_PAGE');
$nowCoolPage = ceil($this->nowPage / $this->rollPage);
$url = $_SERVER['REQUEST_URI'] . (strpos($_SERVER['REQUEST_URI'], '?') ? '' : "?") . $this->parameter;
$parse = parse_url($url);
if (isset($parse['query'])) {
parse_str($parse['query'], $params);
unset($params[$p]);
$url = $parse['path'] . '?' . http_build_query($params);
}
$patterns = array(
"/\/p\/\d+/",
"/\.html/",
"/\.htm/",
"/\.jsp/",
"/\?/",
"/\/$/",
); // 静态显示分页参数
// if(C('URL_MODEL')){
// $url = preg_replace($patterns, '', $url);
//
// $format = "/{$p}/%d".C('URL_HTML_SUFFIX');
// }else{
$format = "&{$p}=%d";
// }
//上下翻页字符串
$upRow = $this->nowPage-1;
$downRow = $this->nowPage+1;
/*if ($upRow>0){
$upPage="<li><a href='".$url.sprintf($format, $upRow)."'>".$this->config['prev']."</a></li>";
}else{
$upPage="<li><a><span class=\"disabled\">".$this->config['prev']."</span></a></li>";
} if ($downRow <= $this->totalPages){
$downPage="<li><a href='".$url.sprintf($format, $downRow)."'>".$this->config['next']."</a></li>";
}else{
$downPage="<li><a><span class=\"disabled\">".$this->config['next']."</span></a></li>";
}*/ //只有1页时不显示"上一页""下一页"
if($this->totalPages <= 1){
$downPage = $upPage = '';
} $offset = floor($this->rollPage/2); $linkPage = "";
if($this->totalPages <= $this->rollPage){
$startPage = 1;
$endPage = $this->totalPages;
}else{
//set startPage
if($this->nowPage > $offset){
$startPage = $this->nowPage - $offset;
}else{
$startPage = 1;
} //set endPage
if($this->nowPage + $offset < $this->totalPages){
$endPage = $this->nowPage + $offset;
}else{
$startPage = $this->totalPages - $this->rollPage;
$endPage = $this->totalPages;
} if($this->nowPage + $offset < $this->rollPage){
$startPage = 1;
$endPage = $this->rollPage;
}
} // << < > >>
if($startPage == 1){
$nextPage = "";
$theEnd="";
}else{
$preRow = $this->nowPage-$this->rollPage;
$prePage = "<li><a href='".$url.sprintf($format, $preRow)."' >上".$this->rollPage."页</a></li>";
$theFirst = "<li><a href='".$url.sprintf($format, 1)."' class='first' >". 1 /*$this->config['first']*/ ."</a></li><a>...</a>";
} if($endPage == $this->totalPages){
$nextPage = "";
$theEnd="";
}else{
$nextRow = $this->nowPage+$this->rollPage;
$theEndRow = $this->totalPages;
$nextPage = "[<a href='".$url.sprintf($format, $nextRow)."' >下".$this->rollPage."页</a>]";
$theEnd = "<a href='".$url.sprintf($format, $theEndRow)."' class='last' >". $theEndRow /*$this->config['last']*/ ."</a>";
} //确保$startPage和$endPage的范围
$startPage = $startPage < 1 ? 1 : $startPage;
$endPage = $endPage > $this->totalPages ? $this->totalPages : $endPage;
// 1 2 3 4 5
for($i=$startPage;$i<=$endPage;$i++){
if($i!=$this->nowPage){
if($page<=$this->totalPages){
$linkPage .= "<li><a href='".$url.sprintf($format, $i)."'>".$i."</a></li>";
}else{
break;
}
}else{
if($this->totalPages != 1){
$linkPage .= "<li><a href='".$url.sprintf($format, $i)."' class='p_a'>".$i."</a></li>";
}
}
} $find = array(
'%header%',
'%nowPage%',
'%totalRow%',
'%totalPage%',
'%upPage%',
'%downPage%',
'%first%',
'%prePage%',
'%linkPage%',
'%nextPage%',
'%end%',
);
$replace = array(
$this->config['header'],
$this->nowPage,
$this->totalRows,
$this->totalPages,
$upPage,
$downPage,
$theFirst,
$prePage,
$linkPage,
$nextPage,
$theEnd,
);
$this->config['theme']=' %upPage% %first% %linkPage% %end% %downPage%'; if ($upRow>0){
$upPage="<span style='float:right'><a href='".$url.sprintf($format, $upRow)."'>".$this->config['prev']."</a>";
}else{
$upPage="<span style='float:right'><a><span class=\"disabled\">".$this->config['prev']."</span></a>";
} if ($downRow <= $this->totalPages){
$downPage="<a href='".$url.sprintf($format, $downRow)."'>".$this->config['next']."</a></span>";
}else{
$downPage="<a><span class=\"disabled\">".$this->config['next']."</span></a></span>";
}
$pageStr = str_replace($find, $replace, $this->config['theme'].$upPage.$downPage); return $pageStr;
} 我想实现成 1 2 3 4 5 6 7 8 9 ........10 11 这样请问怎么做
我没有仔细看你的代码,但是这并不难,得到总页数,循环输出一个范围的页数 显示出来。