PHP分页机制

来源:互联网 发布:鼎力测试软件 编辑:程序博客网 时间:2024/06/06 17:41
<?phpclass page{   private $infocount;//信息总数   private $pagesize;//每页数量   private $pagecount;//页面总数   private $currpage;//当前页面   function __construct($ifcount,$pgsize,$pgcount=1,$cupage=1){    $this->infocount=$ifcount;    $this->pagesize=$pgsize;    $this->pagecount=ceil($this->infocount/$this->pagesize);    $this->currpage=min($this->pagecount,max(1,(int)@$_GET['page']));   }   function hello(){         echo "信息总数:";         echo $this->infocount;         echo "每页显示数量:";         echo $this->pagesize;         echo "<br>";         echo $this->pagecount;         echo "<br>";         echo $this->currpage;     }   function show(){   $s="页码   ";   for($i=1;$i<=$this->pagecount;$i++){     if($i==$this->currpage)      $s.="<span style='color:#ff0000;font-weight:bold;'>&nbsp;$i</span>";         else      $s.="<a href='".$this->pageurl()."$i'>&nbsp;$i</a>";     }     return $s;   }   function limit(){   return "limit ".($this->currpage-1)*$this->pagesize.",".$this->pagesize;   }   function pageurl(){//     return @$_GET['tyid'];//比较     //获取当前网址,即:$url=/shop/admin/article.php    $url=isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:$SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];  //将字符串转换成数组,即$request_arr=array('path'=>'/shop/admin/article.php');  //若传来2个参数typeid(分类id)和page(当前页码)的值,则$request_arr=array('path'=>'/shop/admin/article.php','query'=>array('typeid'=>$typeid,'page'=>$page));    $request_arr=parse_url($url);    if(isset($request_arr['query'])){  //echo '有参数';    //将解析的部分赋给$arr,即$str=$request_arr['query']      parse_str($request_arr['query'],$arr);    //注销掉其中的某个值        unset($arr['page']);    //重新把这个网址组合起来,如:$url=/shop/admin/article.php?typeid=3&page=    //其中,http_build_query将parse_str打散的数组再重新组合成原来parse_url的字符串样式     $url=$request_arr['path']."?".http_build_query($arr)."&page=";    }else{   //echo '无参数';     $url=strstr($url,"?")?$url."page=":$url."?page=";    }    return $url;   }}
0 0
原创粉丝点击