Home >Backend Development >PHP Tutorial >PHP简易分页代码实现

PHP简易分页代码实现

WBOY
WBOYOriginal
2016-06-20 13:04:301089browse

PHP简易分页代码实现

/**<br />     * @todo 分页<br />     * @param $count 总条数<br />     * @param $pagesize 每页显示条数<br />     * @param $nowpagenum 当前页码<br />     * @return String HTML <br />     * @example<br />     * $count = 45; //数据库查询到的数据总数<br />       $pagesize = 10; //每页展示的条数<br />       $nowpagenum = isset($_REQUEST['page']) ? $_REQUEST['page'] : 1 ; //获取当前的页码,默认没有的时候为1<br />       $page =  $this->PageNum($count, $pagesize ,$nowpagenum);<br />     * <br />     */<br />    public function PageNum($count , $pagesize ,$nowpagenum){<br />        //计算页码<br />        $pagenum = ceil(($count/$pagesize));<br />        /***设定当前页在第一页当时无GET页码时默认为1***/<br />        $nowpagenum = empty($nowpagenum) ? 1 : $nowpagenum;<br />        /*****解析URL******/<br />        $url = $_SERVER['REQUEST_URI'];<br />        $urlArr = explode('?', $url);<br />        if(count($urlArr)==1){<br />            $newurl = $url.'?page=';<br />        }else{<br />            $params = array();<br />            $newurl = '';<br />            $newParams = array();<br />            $paramsArr = explode('&', $urlArr[1]);<br />            if(count($paramsArr)==1){<br />                $getParams = explode('=', $paramsArr[0]);<br />                $params[$getParams[0]] = $getParams[1];<br />                $newurl = $urlArr[0].'?page=';<br />            }else{<br />                for($j=0;$j<count($paramsArr);$j++){<br />                    $getParams = explode('=', $paramsArr[$j]);<br />                    $params[$getParams[0]] = $getParams[1];<br />                }<br />                if(isset($params['page'])){<br />                    unset($params['page']);<br />                    foreach($params as $key=>$value){<br />                        $newParams[] = $key.'='.$value;<br />                    }<br />                    $newurl = $urlArr[0].'?'.implode('&', $newParams).'&page=';<br />                }else{<br />                    foreach($params as $key=>$value){<br />                        $newParams[] = $key.'='.$value;<br />                    }<br />                    $newurl = $urlArr[0].'?'.implode('&', $newParams).'&page=';<br />                }<br />            }<br />        }<br />        /****拼装页码显示HTML代码****/<br />        $html='';<br />        if(isset($count) && isset($pagesize)){<br />            //one page <br />            if($count <= $pagesize){<br />                $html = '<span>上一页</span><span>1</span><span>下一页</span>';<br />            //no record<br />            }else if($count == 0){<br />                $html = '暂未记录!';<br />            //大于一页小于等于6页<br />            }else if($count > $pagesize && $pagenum <= 6){<br />                if($nowpagenum==1){<br />                    $html .= '<span>上一页</span>'; <br />                }else{<br />                    $html .= '<span><a href="'.$newurl.''.($nowpagenum-1).'">上一页</a></span>'; <br />                }<br />                for($i=1;$i<=$pagenum;$i++){<br />                    if($i==$nowpagenum){<br />                        $html .= '<span>'.$i.'</span>';<br />                    }else{<br />                        $html .= '<span><a href="'.$newurl.''.$i.'">'.$i.'</a></span>';<br />                    }<br />                }<br />                if($nowpagenum==$pagenum){<br />                    $html .= '<span>下一页</span>'; <br />                }else{<br />                    $html .= '<span><a href="'.$newurl.''.($nowpagenum+1).'">下一页</a></span>'; <br />                }<br />            }else{<br />                if($nowpagenum==1){<br />                    $html .= '<span>上一页</span>'; <br />                }else{<br />                    $html .= '<span><a href="'.$newurl.''.($nowpagenum-1).'">上一页</a></span>'; <br />                }<br />                if(($pagenum-$nowpagenum)>5){<br />                    if($nowpagenum<=3){<br />                        for($i=1;$i<=3;$i++){<br />                            if($i==$nowpagenum){<br />                                $html .= '<span>'.$i.'</span>';<br />                            }else{<br />                                $html .= '<span><a href="'.$newurl.''.$i.'">'.$i.'</a></span>';<br />                            }<br />                        }<br />                    }else{<br />                        for($i=$nowpagenum-2;$i<=$nowpagenum;$i++){<br />                            if($i==$nowpagenum){<br />                                $html .= '<span>'.$i.'</span>';<br />                            }else{<br />                                $html .= '<span><a href="'.$newurl.''.$i.'">'.$i.'</a></span>';<br />                            }<br />                        }<br />                    }<br />                    $html .= '<span>...</span>';<br />                    for($j=$pagenum-2;$j<=$pagenum;$j++){<br />                        if($j==$nowpagenum){<br />                            $html .= '<span>'.$j.'</span>';<br />                        }else{<br />                            $html .= '<span><a href="'.$newurl.''.$j.'">'.$j.'</a></span>';<br />                        }<br />                    }<br />                }else{<br />                    for($i=$pagenum-5;$i<=$pagenum;$i++){<br />                        if($i==$nowpagenum){<br />                            $html .= '<span>'.$i.'</span>';<br />                        }else{<br />                            $html .= '<span><a href="'.$newurl.''.$i.'">'.$i.'</a></span>';<br />                        }<br />                    }<br />                }<br />                if($nowpagenum==$pagenum){<br />                    $html .= '<span>下一页</span>'; <br />                }else{<br />                    $html .= '<span><a href="'.$newurl.''.($nowpagenum+1).'">下一页</a></span>'; <br />                }<br />            }<br />        }<br />        return $html;<br />    }


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn