php之分页种代码

Jun 13, 2016 am 11:09 AM
gt page parse this url

php之分页类代码

1

/*思路1.把地址栏的URL获取2.分析URL中的query部分--就是?后面传参数的部分3.query部分分析成数组4.把数组中的page单元,+1,-1,形成2个新的数组5.再把新数组拼接成query部分,合成上一页,下一页连接地址*///分页类class Page {   public $total;  //全部条数,从数据库取出   public $prePage = 10; //每页的条数   protected $curr= 1; //默认当前页码    public function __construct($total,$prePage='') {       $this->total = $total; //把总条目信息放在total属性     if ($prePage > 0) {          $this->prePage = $prePage;   //把每页数量放在perPage属性      }       //计算当前页码        if (isset($_GET['page']) && ($_GET['page'] + 0) > 0) {           $this->curr = $_GET['page'] + 0;     }   }   //主体函数  public function showPage() {        if ($this->total <=0) {           return ''; //如果总条目<=0 直接返回空字符串       }       $cnt = ceil($this->total / $this->prePage); //算总页数,进一取整           //根据当前页,算上一页,下一页        /*      分析url,有几种情况?        xx.php      xx.php?id=5     xx.php?page=3       xx.php?id=5&page=3      */              //最终生成的URL里边必然有page=N       $url = $_SERVER['REQUEST_URI'];     $parse = parse_url($url); //把URL分析结果放在数组里       //print_r($parse);      //保证参数里边有page       if (!isset($parse['query'])) {          $parse['query'] = 'page=' .$this->curr;      }       //把query字符串分析成数组,再次确保有page选项        parse_str($parse['query'],$parms);      if (!array_key_exists('page', $parms)) {            $parms['page'] = $this->curr;        }       //上边四种情况都测试一遍,page参数都能生成        //print_r($parms);      //判断除了page之外,还有没有其他参数       if (count($parms) == 1) {           $url = $parse['path'] . '?';        } else {            unset($parms['page']);          $url = $parse['path'] . '?' . http_build_query($parms) . '&';       }       //echo $url     $prev = $this->curr - 1;     $next = $this->curr + 1;     //首页        $indexLink = '<a href="' . $url .'page=' . 1 . '">首页</a>';      //上一页       if ($prev < 1) {         $prevLink = '';     }else {         $prevLink = '<a href="' . $url .'page=' . $prev . '">上一页</a>';      }       //下一页       if ($next > $cnt) {          $nextLink = '';     }else {         $nextLink = '<a href="' . $url .'page=' . $next . '">下一页</a>';      }       //尾页        $lastLink = '<a href="' . $url .'page=' . $cnt . '">尾页</a>';        //echo $indexLink.'  '.$prevLink.'  '.$nextLink .'  '.$lastLink;        //上一页,1 2 3 4 5 下一页     $start = $this->curr - (5-1)/2; //计算左侧开始的页码      $end = $this->curr + (5-1)/2;    //计算右侧开始的页码             //如果左侧的页面,已经小于1,则把小于1 的部分补到右侧       if ($start < 1) {            $end += (1 - $start);           $start = 1; //修改start = 1                   if ($end > $cnt) {               $end  = $cnt;           }       }       //把右侧超出的部分,补到左边     if ($end > $cnt) {           $start -= ($end - $cnt);            $end = $cnt;            if ($start < 1) {                $start = 1;         }       }               //循环出页码数        $pageStr = '';      for ($i=$start; $i <= $end ; $i++) {                             if ($i == $this->curr) {             $pageStr .= $i;             continue;           }           $pageStr .= '<a href="' . $url . 'page=' . $i . '">' . $i . '</a>';     }       return $indexLink.$prevLink.$pageStr.$nextLink.$lastLink;   }}$page = new Page(30,3);echo $page->showPage();

Copier après la connexion

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

Quelles sont les différences entre Huawei GT3 Pro et GT4 ?

Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Jul 25, 2023 am 09:05 AM

Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Mar 01, 2024 pm 01:20 PM

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre

Comment obtenir votre identifiant Steam en quelques étapes ? Comment obtenir votre identifiant Steam en quelques étapes ? May 08, 2023 pm 11:43 PM

Comment obtenir votre identifiant Steam en quelques étapes ?

Comment utiliser l'encodage et le décodage d'URL en Java Comment utiliser l'encodage et le décodage d'URL en Java May 08, 2023 pm 05:46 PM

Comment utiliser l'encodage et le décodage d'URL en Java

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Correctif : l'outil de capture ne fonctionne pas sous Windows 11

Quelle est la différence entre HTML et URL Quelle est la différence entre HTML et URL Mar 06, 2024 pm 03:06 PM

Quelle est la différence entre HTML et URL

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Jun 22, 2023 pm 01:57 PM

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité

See all articles