php分頁函數代碼(轉)

一個簡單實用的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分頁類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章