php专区

 首页 > php专区 > PHP应用 > php类库 > php分页程序paginator程序代码 - php类库

php分页程序paginator程序代码 - php类库

分享到:
【字体:
导读:
          ?phpclasspaginator{function__construct(){}staticfunctionrender($page_type,array$args=array()){$html= 39; 39;;switch($page_type)...

php分页程序paginator程序代码

  1.    
  2. class paginator {  
  3.    
  4.     function __construct () {  
  5.    
  6.     }  
  7.    
  8.     static function render($page_typearray $args = array()) {  
  9.         $html = '';  
  10.         switch ($page_type)  
  11.         {  
  12.             case '1':  
  13.                 $html =  page_1($channel_code$page_num$cur_page$per_group$base_url$n$v);  
  14.                 break;  
  15.             case '2':  
  16.                 $html =  fpage($row_num$pagesize$page$url);  
  17.                 break;  
  18.             case '3':  
  19.                 break;  
  20.    
  21.             default:  
  22.                 $html = page($num$perpage$curpage$mpurl$hiddenFrom='');  
  23.         }  
  24.    
  25.         return $html;  
  26.     }  
  27.    
  28.    
  29.    
  30.     //函数1:根据总页数,当前页,和页分组及url产生分页导航  
  31.     function page_1($channel_code$page_num$cur_page$per_group$base_url$n$v) {  
  32.         // 分页函数参数列表(有多少页,当前页,每页多少个 ,链接地址)  
  33.         $base_url .= strpos($base_url'?') ? '&' : '?';    //如果有?,则添加&,否则加?  
  34.    
  35.         $page_val = "";  
  36.    
  37.         if ($page_num < 1) {  
  38.             return $page_val//如果小于1,返回空  
  39.         } elseif ($page_num == 1) {  
  40.             return $page_val = 1;   //如果等于1,返回1  
  41.         }  
  42.    
  43.         //分组  
  44.    
  45.         $group_ok = !(($page_num-1) % ($per_group-1));  //没有余数  
  46.         // 计算一共有多少组  
  47.         if($group_ok) {  
  48.             $group_num = ($page_num-1)/($per_group-1);  
  49.         }else {  
  50.             $group_num = ceil(($page_num-1) / ($per_group-1));  
  51.         } //判断当前页是否为一组的最后一个  
  52.    
  53.    
  54.         //组数  
  55.         $is_last_page = !(($cur_page-1) % ($per_group-1)); //计算当前在的组数  
  56.         if ($is_last_page) {  
  57.             $cur_group = ($cur_page-1) / ($per_group-1) + 1;  
  58.         } else {  
  59.             $cur_group = ceil(($cur_page-1) / ($per_group-1));  
  60.         }  
  61.    
  62.         // 计算显示的起始页 ,这个关键  
  63.         $from = ($cur_group - 1) * ($per_group-1) + 1;  
  64.         $from = $cur_group <= 1 ? 1 :$from;  
  65.    
  66.         $to = $from + $per_group;  
  67.         $to = $to > $page_num ? $page_num + 1 : $to;  
  68.    
  69.         for($a = $from$a < $to$a++) {  
  70.             if ($a != $cur_page) {  
  71.    
  72.                 //不是当前页  
  73.                 $page_val .= '
  74.  . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $a . '">' . $a . '
  75. ';  
  76.             } else {  
  77.                 //当前页  
  78.                 $page_val .=''$a .'
  79. ';  
  80.             }  
  81.         }  
  82.    
  83.         //上一页下一页首页尾页  
  84.         $next = $cur_page + 1;    //当前页+1  
  85.         $prev = $cur_page-1;   //当前页-1  
  86.    
  87.         if ($cur_page != $page_num) {  
  88.             //当前页不是最后一页  
  89.             $page_val .= ' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $next . '">' . '下一页' . '';  
  90.             $page_val .= ' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $page_num . '">' . '>>' . ''//尾页  
  91.    
  92.         }  
  93.         if ($cur_page != 1){  
  94.    
  95.             //不是第一页,加上前面的内容  
  96.             $page_val = ' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $prev . '">' . '上一页' . '' . $page_val;  
  97.             $page_val = ' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=1">' . '<<' . '' . $page_val//首页  
  98.    
  99.         }  
  100.         $page_val = ''.$page_val.'';  
  101.    
  102.    
  103.         return $page_val;  
  104.     }  
  105.    
  106.    
  107.    
  108.    
  109.     // 函数2:根据记录数,页列清数,当前页,url年成分页  
  110.     function fpage($row_num$pagesize$page$url) {  
  111.         //$page,当前页;$row_num记录总数;$pagesize:每页记录数;$url记录页;  
  112.         //如果,如果有作数,则取加1  
  113.         $page_count = $row_num % $pagesize?intval($row_num / $pagesize) + 1:intval($row_num / $pagesize);  
  114.    
  115.         if ($page_count == 1) {  
  116.             $page_string = "第一页|上一页|下一页|尾页";  
  117.         } else {  
  118.             //如果不止一页  
  119.             if ($page == 1) {  
  120.                 //第一页显示  
  121.                 $page_string =  . $url . "?page=1>第一页 |上一页|  . $url . "?page=" . ($page + 1) . ">下一页 |  . $url . "?page=" . $page_count . ">尾页 ";  
  122.             }  
  123.             if (($page > 1) and ($page < $page_count)) {  
  124.                 $page_string =  . $url . "?page=1>第一页 |  . $url . "?page=" . ($page-1) . ">上一页 |  . $url . "?page=" .  
  125.                 ($page + 1) . ">下一页 |  . $url . "?page=" . $page_count . ">尾页 ";  
  126.             }  
  127.             if ($page == $page_count) {  
  128.                 $page_string =  . $url . "?page=1>第一页 |  . $url . "?page=" . ($page-1) . ">上一页 |下一页|  . $url . "?page=" . $page_count . ">尾页 ";  
  129.             }  
  130.         }  
  131.         $page_str = $page_string . ("," . $page . "/" . $page_count . "页");  
  132.         echo 
     "
     . $page_str . 

    "
    ;  
  133.     }  
  134.    
  135.    
  136.     /**  
  137.  * 分页函数  
  138.  *  
  139.  * @param int $num:记录总数  
  140.  * @param int $perpage:每页记录  
  141.  * @param int $curpage:当前页  
  142.  * @param string $mpurl:路径url  
  143.  * @param unknown_type $hiddenFrom  
  144.  * @return string  
  145.  */ 
  146.     function page($num$perpage$curpage$mpurl,$hiddenFrom='') {  
  147.         $multipage = '';  
  148.         //恢复  
  149.         $mpurl .= strpos($mpurl'?') ? '&' : '?';  
  150.    
  151.         if($num > $perpage) {  
  152.             $page = 10;  
  153.             $offset = 2;  
  154.    
  155.             $pages = @ceil($num / $perpage);  //总页数  
  156.    
  157.             if($page > $pages) {  
  158.                 $from = 1;  
  159.                 $to = $pages;  
  160.             } else {  
  161.                 //如果总页数>10  
  162.                 $from = $curpage - $offset;   //当前页-2  
  163.                 $to = $from + $page - 1;    //当前页+10-3  
  164.    
  165.                 if($from < 1) {  
  166.    
  167.                     $to = $curpage + 1 - $from;  
  168.                     $from = 1;  
  169.                     if($to - $from < $page) {  
  170.                         $to = $page;  
  171.                     }  
  172.                 } elseif($to > $pages) {  
  173.                     $from = $pages - $page + 1;  
  174.                     $to = $pages;  
  175.                 }  
  176.             }  
  177.    
  178.             if ($hiddenFrom) {  
  179.                 $multipage = ($curpage - $offset > 1 && $pages > $page ? '.js_page($hiddenFrom,1).'>首页 ' : '').  
  180.                 ($curpage > 1 ? .js_page($hiddenFrom,$curpage - 1).'>‹‹上一页 ' : '');  
  181.                 for($i = $from$i <= $to$i++) {  
  182.                     $multipage .= $i == $curpage ? ''.$i.' ' :  
  183.                     '.js_page($hiddenFrom,$i).'>'.$i.' ';  
  184.                 }  
  185.    
  186.                 $multipage .= ($curpage < $pages ? '.js_page($hiddenFrom,$curpage + 1).'>下一页››' : '').  
  187.                 ($to < $pages ? '.js_page($hiddenFrom,$pages).'> 末页' : '');  
  188.                 $multipage = $multipage ? ''.$multipage.'
' : '';  
  •             } else {  
  •    
  •                 $multipage = ($curpage - $offset > 1 && $pages > $page ? '.$mpurl.'page=1">首页 ' : '').  
  •                 ($curpage > 1 ? .$mpurl.'page='.($curpage - 1).'">‹‹上一页 ' : '');  
  •    
  •                 for($i = $from$i <= $to$i++) {  
  •                     $multipage .= $i == $curpage ? ''.$i.' ' :  
  •                     '.$mpurl.'page='.$i.'">'.$i.' ';  
  •                 }  
  •    
  •                 $multipage .= ($curpage < $pages ? '.$mpurl.'page='.($curpage + 1).'">下一页››' : '').  
  •                 ($to < $pages ? '.$mpurl.'page='.$pages.'"> 末页' : '');  
  •                 $multipage = $multipage ? ''.$multipage.'
  • ' : '';  
  •             }  
  •         }  
  •         return $multipage;  
  •     }  
  •     //暂不用  
  •     function page_get_start($page$ppp$totalnum) {  
  •         $totalpage = ceil($totalnum / $ppp);  
  •         $page =  max(1, min($totalpageintval($page)));  
  •         return ($page - 1) * $ppp;  
  •     }  
  •     //暂不用  
  •     function js_page($hiddenFrom,$page)  
  •     {  
  •         if ($hiddenFrom) {  
  •             return ' onclick=javascript:$("#page").val("'.$page.'");$("#'.$hiddenFrom.'").submit(); ';  
  •         }  
  •     }  
  • }  
  • ?> 
  • 分享到:
    php SESSION类(购物车类) - php类库
    php SESSION类(购物车类) 关于 SESSION 在 php 中的应用是必不要少的,最重要的功能之一,SESSION 在网络应用中,称为“会话”,我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SESSION 值不会丢失,而是在整个用户会话中一直存活下去。通俗一点讲,就是...
    PHP分页类 - php类库
    PHP分页类  
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……