一個簡單實用的php分頁函數,分頁導航中可以默認為空,在函數內部再設置本頁URL。
代碼:
<?php /** * 分頁 * @category 功能 * @param $totle:信息總數 * @param $displaypg:每頁顯示信息數,這里設置為默認是20; * @param $url:分頁導航中的鏈接,除了加入不同的查詢信息“page”外的部分都與這個URL相同.默認值本該設為本頁URL(即$_SERVER["REQUEST_URI"]),但設置默認值的右邊只能為常量,所以該默認值設為空字符串,在函數內部再設置為本頁URL。 * @return string */ function pageft($totle, $displaypg=20, $url=''){ $page=fget("page", 1); $url=empty($url) ? $_SERVER["REQUEST_URI"] : $url; //URL分析: $parse_url=parse_url($url); $url_query=isset($parse_url["query"]) ? $parse_url["query"] : ""; //單獨取出URL的查詢字串 if($url_query){ $url_query=preg_replace("/page=[^&]*[&]?/i","",$url_query); $url=str_replace($parse_url["query"],$url_query,$url);//將處理后的URL的查詢字串替換原來的URL的查詢字串 $url.="&page";//在URL后加page查詢信息,但待賦值 }else{ $url.="?page"; } //頁碼計算: $lastpg=ceil($totle/$displaypg); //最后頁,也是總頁數 $lastpg=$lastpg ? $lastpg : 1; //沒有顯示條目,置最后頁為1 $page=min($lastpg,$page); $prepg=$page-1; //上一頁 $nextpg=($page==$lastpg ? 0 : $page+1); //下一頁 $firstcount=($page-1)*$displaypg; //如果只有一頁則跳出函數,沒有分頁的文字顯示(備用) //if($lastpg<=1) return false; //開始分頁導航條代碼 $pagenav="顯示第 ".($totle?($firstcount+1):0) . "/" . min($firstcount+$displaypg,$totle)." 條記錄,共 $totle 條記錄<br/>"; $pagenav.=" <a href='$url=1'>首頁</a> "; if($prepg) $pagenav.=" <a href='$url=$prepg'>前頁</a> "; else $pagenav.=" 前頁 "; if($nextpg) $pagenav.=" <a href='$url=$nextpg'>后頁</a> "; else $pagenav.=" 后頁 "; $pagenav.=" <a href='$url=$lastpg'>尾頁</a> "; //下拉跳轉列表,循環列出所有頁碼 $pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n"; for($i=1;$i<=$lastpg;$i++){ if($i==$page){ $pagenav.="<option value='$i' selected>$i</option>\n"; }else{ $pagenav.="<option value='$i'>$i</option>\n"; } } $pagenav.="</select> 頁,共 $lastpg 頁"; //組織返回值 $re_str['limit'] = "limit {$firstcount},{$displaypg}"; $re_str['str'] = $pagenav; return $re_str; }
您可能感興趣的文章:
入門級PHP簡單分頁代碼
PHP分頁代碼詳解(附實例)
php簡單分頁代碼一例
帶多種分頁方式的php分頁類
一個好用的php分頁類
簡單的php分頁代碼的例子
一個實用的php分頁類
一個快速好用的php分頁類