ホームページ > バックエンド開発 > PHPチュートリアル > PHP の単純なページング コードの実装

PHP の単純なページング コードの実装

WBOY
リリース: 2016-06-20 13:04:30
オリジナル
1087 人が閲覧しました

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 />    }
ログイン後にコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート