PHP中面向对象的分页类
admin
2023-06-21 17:22:08
0次
rendor();
echo '
';
var_dump($p);
echo'
'; /** * 分页类 */ class Page { protected $url; //URL protected $pageCount; //总页数 protected $total; //总条数 protected $num; //每页显示数 protected $page; //当前页 //初始化成员属性 public function __construct($total,$num = 5) { //总条数 $this->total = ($total > 0 )? (int) $total : 1; //每页显示条数 $this->num = $num; //总页数 $this->pageCount = $this->getPageCount(); //当前页 $this->page = $this->getCurrentPage(); //URL $this->url = $this->getUrl(); } //一次性返回所有的分页信息 public function rendor() { return[ 'first' => $this->first(), 'next' => $this->next(), 'prev' => $this->prev(), 'end' => $this->end(), ]; } //limit方法,在未来分页数据查询的时候,直接返回对应的limit0,5 这样的字符串 public function limit() { $offset = ($this->page - 1)  * $this->num; $str = $offset.','.$this->num; return $str; } //首页,设置page = 1 protected function first() { return $this->setQueryString('page=1'); } //上一页 protected function prev() { $page = ($this->page <= 1) ? 1 : ($this->page - 1); return $this->setQueryString('page='.$page); } //下一页 protected function next() { $page = ($this->page >= $this->pageCount) ? $this->pageCount : ($this->page + 1); return $this->setQueryString('page='.$page); } //首页 protected function end() { return $this->setQueryString('page='.$this->pageCount); } //一种情况有? 一种情况没有? protected function setQueryString($page) { //查找url中是否有问号 if (stripos($this->url, '?')) { return $this->url.'&'.$page; } else { //没有问号就拼接 return $this->url.'?'.$page; } } //处理URL protected function getUrl() { //获取用户的uri $path = $_SERVER['REQUEST_URI']; //解析uri $par = parse_url($path); //判断用户是否设置过query if (isset($par['query'])) { parse_str($par['query'],$query); //检查query 里面时候有page,如果有的话就干掉page unset($query['page']); $path = $par['path'] . '?'.http_build_query($query); } $path = rtrim($path,'?'); //协议:主机:端口:文件和请求 //判断是否定义过端口,并且端口是否为443,如果为443则是https协议,否则就是http协议 $protocal = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) ? 'https//' : 'http://'; if (80 == $_SERVER['SERVER_PORT'] || 443 == $_SERVER['SERVER_PORT']) { $url = $protocal.$_SERVER['SERVER_NAME'].$path; }else{ $url = $protocal.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$path; } //全新的url return $url; } //处理当前页Page protected function getCurrentPage() { //如果有page,就返回转换为int的page if (isset($_GET['page'])) { //得到页码 $page = (int) $_GET['page']; //当前页码不能给大于总页码 if ($page > $this->pageCount) { $page = $this->pageCount; } if ($page < 1) { $page = 1; } }else { $page = 1; } return $page; } //处理总页数 protected function getPageCount() { //进一法取整 return ceil($this->total / $this->num); } }


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...