abstract:本文實(shí)例講述了PHP實(shí)現(xiàn)仿Google分頁(yè)效果的分頁(yè)函數(shù)。分享給大家供大家參考。具體如下:/** * 分頁(yè)函數(shù) * @param int $total 總頁(yè)數(shù) * @param int $pagesize 每頁(yè)幾條 * @param&nbs
本文實(shí)例講述了PHP實(shí)現(xiàn)仿Google分頁(yè)效果的分頁(yè)函數(shù)。分享給大家供大家參考。具體如下:
/** * 分頁(yè)函數(shù) * @param int $total 總頁(yè)數(shù) * @param int $pagesize 每頁(yè)幾條 * @param string $pkey url中頁(yè)面變量名稱(chēng) * @param string $url 基礎(chǔ)url,其中的{page}會(huì)被替換為頁(yè)碼 * 依賴(lài)函數(shù) request_uri httpInt */ function page($total,$pagesize=10,$pkey='p',$url=null){ $a_num=10; $first=' 首頁(yè) '; $last=' 尾頁(yè) '; $pre=' 上頁(yè) '; $next=' 下頁(yè) '; $a_num=$a_num%2==0?$a_num+1:$a_num; if(!$url){ $url=preg_replace("/&?{$pkey}=[^&]{0,}/", '',request_uri()); $url=strpos($url, '?')===FALSE?$url.'?'.$pkey.'={page}':$url.'&'.$pkey.'={page}'; } $pages=ceil($total/$pagesize); $curpage=httpInt($pkey,false,1); $curpage=$curpage>$pages||$curpage<=0?1:$curpage;//當(dāng)前頁(yè)超范圍置為1 $body='';$prefix='';$subfix=''; $start=$curpage-($a_num-1)/2;//開(kāi)始頁(yè) $end=$curpage+($a_num-1)/2; //結(jié)束頁(yè) $start=$start<=0?1:$start; //開(kāi)始頁(yè)超范圍修正 $end=$end>$pages?$pages:$end;//結(jié)束頁(yè)超范圍修正 if($pages>=$a_num){//總頁(yè)數(shù)大于顯示頁(yè)數(shù) if($curpage<=($a_num-1)/2){$end=$a_num;}//當(dāng)前頁(yè)在左半邊補(bǔ)右邊 if($end-$curpage<=($a_num-1)/2){$start-=5-($end-$curpage);}//當(dāng)前頁(yè)在右半邊補(bǔ)左邊 } for($i=$start;$i<=$end;$i++){ if($i==$curpage){ $body.='<b>'.$i.'</b>'; }else{ $body.='<a href="'.str_replace('{page}',$i,$url).'"> '.$i.' </a>'; } } $prefix=($curpage==1?'':'<a href="'.str_replace('{page}',1,$url).'">'.$first.'</a><a href="'.str_replace('{page}',$curpage-1,$url).'">'.$pre.'</a>'); $subfix=($curpage==$pages?'':'<a href="'.str_replace('{page}',$curpage+1,$url).'">'.$next.'</a><a href="'.str_replace('{page}',$pages,$url).'">'.$last.'</a>'); $info=" 第{$curpage}/{$pages}頁(yè) "; $go='<script>function ekup(){if(event.keyCode==13){clkyup();}}function clkyup(){if(!/\d+/.test(document.getElementById(\'gsd09fhas9d\').value)){alert(\'請(qǐng)輸入頁(yè)碼!\');return;};location=\''.$url.'\'.replace(/\\{page\\}/,document.getElementById(\'gsd09fhas9d\').value);}</script><input onkeyup="ekup()" type="text" id="gsd09fhas9d" style="width:40px;vertical-align:text-baseline;padding:0 2px;font-size:10px;border:1px solid gray;"/> <span id="gsd09fhas9daa" onclick="clkyup();" style="cursor:pointer;text-decoration:underline;">轉(zhuǎn)到</span>'; return $prefix.$body.$subfix.$info.$go; } /** * 說(shuō)明:獲取 _SERVER['REQUEST_URI'] 值的通用解決方案 */ function request_uri() { if (isset($_SERVER['REQUEST_URI'])) { $uri = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['argv'])) { $uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0]; } else { $uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING']; } } return $uri; } /** * 獲取HTTP傳遞的整數(shù) * @param string $key 參數(shù)名稱(chēng) * @param bool $ispost 采取POST傳遞方式,默認(rèn)為真http://blog.ddian.cn * @return 整數(shù),非法時(shí)默認(rèn)為 $default */ function httpInt($key, $ispost=true,$default=0) { if ($ispost) { if (isset($_POST[$key])) { if (empty($_POST[$key])) { return $default; } else { $val = trim($_POST[$key]); if (preg_match("/^\-?\d+$/", $val)) return intval($val); else return $default; } } else { return $default; } } else { if (isset($_GET[$key])) { if (empty($_GET[$key])) { return $default; } else { $val = trim($_GET[$key]); if (preg_match("/^\-?\d+$/", $val)) { return intval($val); } else { return $default; } } } else { return $default; } } }
更多關(guān)于PHP實(shí)現(xiàn)仿Google分頁(yè)效果的分頁(yè)函數(shù)請(qǐng)關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其他文章!