//分页
if(!function_exists("pageDivide")){
#$total信息总数
#$shownu显示数量,默认20
#$url本页链接
function pageDivide($total,$shownu=20,$url=''){
#$page 当前页码
#$sqlfirst mysql数据库起始项
#$pagecon分页导航内容
#fid 分类id
#$keywords 搜索关键词
global $page,$sqlfirst,$pagecon,$_SERVER,$fid,$keywords;
$GLOBALS["shownu"]=$shownu;
if(isset($_GET['page'])){
$page=inject_check($_GET['page']);
}else $page=1;
if(!is_numeric($page)){echo '非法操作';exit();}
#如果$url使用默认,即空值,则赋值为本页URL
if(!$url){ $url=$_SERVER["REQUEST_URI"];}
#URL分析
$parse_url=parse_url($url);
@$url_query=$parse_url["query"];//取出在问号?之后内容
if($url_query){
$url_query=preg_replace("/(&?)(page=$page)/","",$url_query);
$url_query=preg_replace("/(&?)(fid=$fid)/","",$url_query);
$url_query=preg_replace("/(&?)(keywords=$keywords)/","",$url_query);
$url = str_replace($parse_url["query"],$url_query,$url);
if($url_query){
$url .= "&page";
}else $url .= "page";
}else $url .= "?page";
//分类
if(!empty($fid)&&$fid>0){
$fid="&fid=$fid";
}else{
$fid="";
}
//搜索
if(!empty($keywords)){
$keywords="&keywords=$keywords";
}else{
$keywords="";
}
#页码计算
$lastpg=ceil($total/$shownu);//最后页,总页数
$page=min($lastpg,$page);
$prepg=$page-1; //上一页
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页
$sqlfirst=($page-1)*$shownu;
#开始分页导航内容
$pagecon = "显示第".($total?($sqlfirst+1):0)."-".min($sqlfirst+$shownu,$total)." 条记录,共 $total 条记录";
if($lastpg<=1) return false;//如果只有一页则跳出
if($page!=1) $pagecon .=" 首页 "; else $pagecon .=" 首页 ";
if($prepg) $pagecon .=" 上一页 "; else $pagecon .=" 上一页 ";
if($nextpg) $pagecon .=" 下一页 "; else $pagecon .=" 下一页 ";
if($page!=$lastpg) $pagecon.=" 最后一页 "; else $pagecon .=" 最后一页 ";
#下拉跳转列表,循环列出所有页码
$show_total=100;//显示页码数
if($page>=$show_total){
$i=$page-50;
$show_total=$page+50;
if($show_total>=$lastpg) $show_total=$lastpg;
}else{
$i=1;
if($show_total>=$lastpg) $show_total=$lastpg;
}
$pagecon .=" 到第 \n";
//for($i=1;$i<=$lastpg;$i++){
for($i;$i<=$show_total;$i++){
if($i==$page) $pagecon .="$i\n";
else $pagecon .="$i\n";
}
$pagecon .=" 页,共 $lastpg 页";
}
}else die('pageDivide()同名函数已经存在!');