PHP實現(xiàn)仿Google分頁效果的分頁函數(shù)
更新時間:2015年07月29日 10:35:35 作者:DDIAN
這篇文章主要介紹了PHP實現(xiàn)仿Google分頁效果的分頁函數(shù),實例分析了php實現(xiàn)分頁的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了PHP實現(xiàn)仿Google分頁效果的分頁函數(shù)。分享給大家供大家參考。具體如下:
/** * 分頁函數(shù) * @param int $total 總頁數(shù) * @param int $pagesize 每頁幾條 * @param string $pkey url中頁面變量名稱 * @param string $url 基礎(chǔ)url,其中的{page}會被替換為頁碼 * 依賴函數(shù) request_uri httpInt */ function page($total,$pagesize=10,$pkey='p',$url=null){ $a_num=10; $first=' 首頁 '; $last=' 尾頁 '; $pre=' 上頁 '; $next=' 下頁 '; $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;//當前頁超范圍置為1 $body='';$prefix='';$subfix=''; $start=$curpage-($a_num-1)/2;//開始頁 $end=$curpage+($a_num-1)/2; //結(jié)束頁 $start=$start<=0?1:$start; //開始頁超范圍修正 $end=$end>$pages?$pages:$end;//結(jié)束頁超范圍修正 if($pages>=$a_num){//總頁數(shù)大于顯示頁數(shù) if($curpage<=($a_num-1)/2){$end=$a_num;}//當前頁在左半邊補右邊 if($end-$curpage<=($a_num-1)/2){$start-=5-($end-$curpage);}//當前頁在右半邊補左邊 } 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}頁 "; $go='<script>function ekup(){if(event.keyCode==13){clkyup();}}function clkyup(){if(!/\d+/.test(document.getElementById(\'gsd09fhas9d\').value)){alert(\'請輸入頁碼!\');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; } /** * 說明:獲取 _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ù)名稱 * @param bool $ispost 采取POST傳遞方式,默認為真http://blog.ddian.cn * @return 整數(shù),非法時默認為 $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; } } }
希望本文所述對大家的php程序設(shè)計有所幫助。
您可能感興趣的文章:
- php jquery 實現(xiàn)新聞標簽分類與無刷新分頁
- FCKEditor+jQuery+PHP實現(xiàn)分頁代碼
- 使用PHP+JQuery+Ajax分頁的實現(xiàn)
- 推薦一款PHP+jQuery制作的列表分頁的功能模塊
- ThinkPHP分頁實例
- 仿dedecms下拉分頁樣式修改的thinkphp分頁類實例
- ThinkPHP有變量的where條件分頁實例
- PHP分頁類集錦
- php 使用array函數(shù)實現(xiàn)分頁
- php簡單分頁類實現(xiàn)方法
- PHP讀取txt文本文件并分頁顯示的方法
- 分享php分頁的功能模塊
- PHP實現(xiàn)簡單數(shù)字分頁效果
- 分享PHP函數(shù)實現(xiàn)數(shù)字與文字分頁代碼
- jQuery+Ajax+PHP+Mysql實現(xiàn)分頁顯示數(shù)據(jù)實例講解
- PHP+jQuery+Ajax實現(xiàn)分頁效果 jPaginate插件的應(yīng)用
相關(guān)文章
PHP實現(xiàn)動態(tài)壓縮js與css文件的方法
這篇文章主要介紹了PHP實現(xiàn)動態(tài)壓縮js與css文件的方法,涉及php文件讀寫及字符串替換等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05php中sprintf與printf函數(shù)用法區(qū)別解析
這篇文章主要介紹了php中sprintf與printf函數(shù)用法區(qū)別解析,需要的朋友可以參考下2014-02-02關(guān)于更改Zend Studio/Eclipse代碼風格主題的介紹
本篇文章是對關(guān)于更改Zend Studio/Eclipse代碼風格主題進行了詳細的分析介紹,需要的朋友參考下2013-06-06echo(),print(),print_r()之間的區(qū)別?
echo(),print(),print_r()之間的區(qū)別?...2006-11-11