Home  >  Article  >  Backend Development  >  PHP paginator program code_PHP tutorial

PHP paginator program code_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:43:541094browse

This article will introduce to you a PHP paging program code for paginator. Friends in need can enter it for reference.

The code is as follows Copy code

class paginator {

Function __construct () {

}

​ static function render($page_type, array $args = array()) {
          $html = '';
switch ($page_type)
                                                                            case '1':
                      $html = page_1($channel_code, $page_num, $cur_page, $per_group, $base_url, $n, $v);
break;
case '2':
                                                                                                                                                                                                                                    $html = fpage($row_num, $pagesize, $page, $url);
break;
case '3':
break;

                  default:
$html = page($num, $perpage, $curpage, $mpurl, $hiddenFrom='');
          }

          return $html;
}



//Function 1: Generate paging navigation based on the total number of pages, current page, page grouping and url
Function page_1($channel_code, $page_num, $cur_page, $per_group, $base_url, $n, $v) {
//Paging function parameter list (how many pages, current page, how many per page, link address)
           $base_url .= strpos($base_url, '?') ? '&' : '?'; //If there is ?, add &, otherwise add ?

          $page_val = "";

If ($page_num < 1) {
                return $page_val; //If less than 1, return empty
            } elseif ($page_num == 1) {
                 return $page_val = 1; //If equal to 1, return 1
          }

//Group

          $group_ok = !(($page_num-1) % ($per_group-1)); //No remainder
// Calculate how many groups there are in total
If($group_ok) {
                $group_num = ($page_num-1)/($per_group-1);
          }else {
$group_num = ceil(($page_num-1) / ($per_group-1));
              } //Determine whether the current page is the last one in a group


//Number of groups
           $is_last_page = !(($cur_page-1) % ($per_group-1)); //Calculate the number of groups currently in
If ($is_last_page) {
$cur_group = ($cur_page-1) / ($per_group-1) + 1;
         } else {
                $cur_group = ceil(($cur_page-1) / ($per_group-1));
          }

// Calculate the displayed starting page, this key
$from = ($cur_group - 1) * ($per_group-1) + 1;
           $from = $cur_group <= 1 ? 1 :$from;

          $to = $from + $per_group;
$to = $to > $page_num ? $page_num + 1 : $to;

for($a = $from; $a < $to; $a++) {
If ($a != $cur_page) {

//Not the current page
$page_val .= '
  • ' . $a . '
  • ';
                    } else {
    //Current page
    $page_val .='
  • '. $a .'
  • ';
                   }
              }

    //Previous pageNext pageHome pageLast page
    $ Next = $ Cur_page + 1; // The current page +1
              $prev = $cur_page-1; //Current page-1

    If ($cur_page != $page_num) {
    //The current page is not the last page
    $page_val .= '' . 'Next page' . '';
    $page_val .= '' . '>>' . ''; //Last page

              }
    If ($cur_page != 1){

    //Not the first page, add the previous content
    $page_val = '' . 'Previous page' . '' . $page_val;
    $page_val = ' ' . '<<' . '' . $page_val; //Homepage

              }
               $page_val = '';


              return $page_val;
    }




    // Function 2: Divide pages into pages based on the number of records, page list, current page, and url year
    Function fpage($row_num, $pagesize, $page, $url) {
    //$page, current page; $row_num total number of records; $pagesize: number of records per page; $url record page;
    //If, if there is a calculation, add 1
    $page_count = $row_num % $pagesize?intval($row_num / $pagesize) + 1:intval($row_num / $pagesize);

    If ($page_count == 1) {
                    $page_string = "First page|Previous page|Next page|Last page";
             } else {
    //If there is more than one page
    If ($page == 1) {
    //The first page displays
    $page_string = " First page|Previous page| Next page| Last page";
                                                                 If (($page > 1) and ($page < $page_count)) {
    $page_string = " First page| Previous page| Next page| Last page";
                                                                 If ($page == $page_count) {
    $page_string = " First page| Previous page|Next page| Last page";
                                                                           }
    $page_str = $page_string . ("," . $page . "/" . $page_count . "page");
    echo "

    " . $page_str . "

    ";
    }


    /**
    *Paging function
    *
    * @param int $num: total number of records
    * @param int $perpage: records per page
    * @param int $curpage: current page
    * @param string $mpurl: path url
    * @param unknown_type $hiddenFrom
    * @return string
    ​*/
    Function page($num, $perpage, $curpage, $mpurl,$hiddenFrom='') {
              $multipage = '';
    //Restore
                $mpurl .= strpos($mpurl, '?') ? '&' : '?';

    If($num > $perpage) {
    $page = 10;
    $offset = 2;

                    $pages = @ceil($num / $perpage); //Total number of pages

    If($page > $pages) {
    $from = 1;
                         $to = $pages;
                    } else {
    //If the total number of pages>10
    $from = $curpage - $offset; //Current page-2
    $to = $from + $page - 1; //Current page +10-3

    If($from < 1) {

    $to = $curpage + 1 - $from;
    $from = 1;
    if($to - $from < $page) {
    $to = $page;
    }
    } elseif($to > $pages) {
                        $from = $pages - $page + 1;
                        $to = $pages;
                    }
                }
     
                if ($hiddenFrom) {
                    $multipage = ($curpage - $offset > 1 && $pages > $page ? '首页 ' : '').
                    ($curpage > 1 ? ' ‹‹上一页 ' : '');
                    for($i = $from; $i <= $to; $i++) {
                        $multipage .= $i == $curpage ? ''.$i.' ' :
                        ''.$i.' ';
                    }
     
                    $multipage .= ($curpage < $pages ? '下一页››' : '').
                    ($to < $pages ? ' 末页' : '');
                    $multipage = $multipage ? '
    '.$multipage.'
    ' : '';
                } else {
     
                    $multipage = ($curpage - $offset > 1 && $pages > $page ? '首页 ' : '').
                    ($curpage > 1 ? ' ‹‹上一页 ' : '');
     
                    for($i = $from; $i <= $to; $i++) {
                        $multipage .= $i == $curpage ? ''.$i.' ' :
                        ''.$i.' ';
                    }
     
                    $multipage .= ($curpage < $pages ? '下一页››' : '').
                    ($to < $pages ? ' 末页' : '');
                    $multipage = $multipage ? '
    '.$multipage.'
    ' : '';
                }
            }
            return $multipage;
        }
        //暂不用
        function page_get_start($page, $ppp, $totalnum) {
            $totalpage = ceil($totalnum / $ppp);
            $page =  max(1, min($totalpage, intval($page)));
            return ($page - 1) * $ppp;
        }
        //暂不用
        function js_page($hiddenFrom,$page)
        {
            if ($hiddenFrom) {
                return ' onclick=javascript:$("#page").val("'.$page.'");$("#'.$hiddenFrom.'").submit(); ';
            }
        }
    }
     
     
     
    ?>

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/633149.htmlTechArticle本文章来给大家介绍一个paginator的php分页程序代码,有需要的朋友可进入参考。 代码如下 复制代码 ?php class paginator { function __construct () {...
    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