国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php分頁程序paginator程序代碼

2024-09-04 11:44:02
字體:
來源:轉載
供稿:網友
  1. <?php  
  2.    
  3. class paginator {  
  4.    
  5.     function __construct () {  
  6.    
  7.     }  
  8.    
  9.     static function render($page_typearray $args = array()) {  
  10.         $html = '';  
  11.         switch ($page_type)  
  12.         {  
  13.             case '1':  
  14.                 $html =  page_1($channel_code$page_num$cur_page$per_group$base_url$n$v);  
  15.                 break;  
  16.             case '2':  
  17.                 $html =  fpage($row_num$pagesize$page$url);  
  18.                 break;  
  19.             case '3':  
  20.                 break;  
  21.    
  22.             default:  
  23.                 $html = page($num$perpage$curpage$mpurl$hiddenFrom='');  
  24.         }  
  25.    
  26.         return $html;  
  27.     }  
  28.    
  29.    
  30.    
  31.     //函數1:根據總頁數,當前頁,和頁分組及url產生分頁導航  
  32.     function page_1($channel_code$page_num$cur_page$per_group$base_url$n$v) {  
  33.         // 分頁函數參數列表(有多少頁,當前頁,每頁多少個 ,鏈接地址)  
  34.         $base_url .= strpos($base_url'?') ? '&' : '?';    //如果有?,則添加&,否則加?  
  35.    
  36.         $page_val = "";  
  37.    
  38.         if ($page_num < 1) {  
  39.             return $page_val//如果小于1,返回空  
  40.         } elseif ($page_num == 1) {  
  41.             return $page_val = 1;   //如果等于1,返回1  
  42.         }  
  43.    
  44.         //分組  
  45.    
  46.         $group_ok = !(($page_num-1) % ($per_group-1));  //沒有余數  
  47.         // 計算一共有多少組  
  48.         if($group_ok) {  
  49.             $group_num = ($page_num-1)/($per_group-1);  
  50.         }else {  
  51.             $group_num = ceil(($page_num-1) / ($per_group-1));  
  52.         } //判斷當前頁是否為一組的最后一個  
  53.    
  54.    
  55.         //組數  
  56.         $is_last_page = !(($cur_page-1) % ($per_group-1)); //計算當前在的組數  
  57.         if ($is_last_page) {  
  58.             $cur_group = ($cur_page-1) / ($per_group-1) + 1;  
  59.         } else {  
  60.             $cur_group = ceil(($cur_page-1) / ($per_group-1));  
  61.         }  
  62.    
  63.         // 計算顯示的起始頁 ,這個關鍵  
  64.         $from = ($cur_group - 1) * ($per_group-1) + 1;  
  65.         $from = $cur_group <= 1 ? 1 :$from;  
  66.    
  67.         $to = $from + $per_group;  
  68.         $to = $to > $page_num ? $page_num + 1 : $to;  
  69.    
  70.         for($a = $from$a < $to$a++) {  
  71.             if ($a != $cur_page) {  
  72.    
  73.                 //不是當前頁  
  74.                 $page_val .= '<li><a href ="' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $a . '">' . $a . '</a></li>';  
  75.             } else {  
  76.                 //當前頁  
  77.                 $page_val .='<li class="current">'$a .'</li>';  
  78.             }  
  79.         }  
  80.    
  81.         //上一頁下一頁首頁尾頁  
  82.         $next = $cur_page + 1;    //當前頁+1  
  83.         $prev = $cur_page-1;   //當前頁-1  
  84.    
  85.         if ($cur_page != $page_num) {  
  86.             //當前頁不是最后一頁  
  87.             $page_val .= '<span><a href ="' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $next . '">' . '下一頁' . '</a></span>';  
  88.             $page_val .= '<span><a href ="' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $page_num . '">' . '>>' . '</a></span>'//尾頁  
  89.    
  90.         }  
  91.         if ($cur_page != 1){  
  92.    
  93.             //不是第一頁,加上前面的內容  
  94.             $page_val = '<span><a href ="' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=' . $prev . '">' . '上一頁' . '</a></span>' . $page_val;  
  95.             $page_val = '<span><a href ="' . $base_url . 'channel='.$channel_code.'&n='.$n.'&v='.$v.'&page=1">' . '<<' . '</a></span>' . $page_val//首頁  
  96.    
  97.         }  
  98.         $page_val = '<ul class="page_nav">'.$page_val.'</ul>';  
  99.    
  100.    
  101.         return $page_val;  
  102.     }  
  103.    
  104.    
  105.    
  106.    
  107.     // 函數2:根據記錄數,頁列清數,當前頁,url年成分頁  
  108.     function fpage($row_num$pagesize$page$url) {  
  109.         //$page,當前頁;$row_num記錄總數;$pagesize:每頁記錄數;$url記錄頁;  
  110.         //如果,如果有作數,則取加1  
  111.         $page_count = $row_num % $pagesize?intval($row_num / $pagesize) + 1:intval($row_num / $pagesize);  
  112.    
  113.         if ($page_count == 1) {  
  114.             $page_string = "第一頁|上一頁|下一頁|尾頁";  
  115.         } else {  
  116.             //如果不止一頁  
  117.             if ($page == 1) {  
  118.                 //第一頁顯示  
  119.                 $page_string = " <a href=" . $url . "?page=1>第一頁 </a>|上一頁| <a href=" . $url . "?page=" . ($page + 1) . ">下一頁 </a>| <a href=" . $url . "?page=" . $page_count . ">尾頁 </a>";  
  120.             }  
  121.             if (($page > 1) and ($page < $page_count)) {  
  122.                 $page_string = " <a href=" . $url . "?page=1>第一頁 </a>| <a href=" . $url . "?page=" . ($page-1) . ">上一頁 </a>| <a href=" . $url . "?page=" .  
  123.                 ($page + 1) . ">下一頁 </a>| <a href=" . $url . "?page=" . $page_count . ">尾頁 </a>";  
  124.             }  
  125.             if ($page == $page_count) {  
  126.                 $page_string = " <a href=" . $url . "?page=1>第一頁 </a>| <a href=" . $url . "?page=" . ($page-1) . ">上一頁 </a>|下一頁| <a href=" . $url . "?page=" . $page_count . ">尾頁 </a>";  
  127.             }  
  128.         }  
  129.         $page_str = $page_string . ("," . $page . "/" . $page_count . "頁");  
  130.         echo " <br> <p align=center>" . $page_str . " </p>";  
  131.     }  
  132.    
  133.    
  134.     /**  
  135.  * 分頁函數  
  136.  *  
  137.  * @param int $num:記錄總數  
  138.  * @param int $perpage:每頁記錄  
  139.  * @param int $curpage:當前頁  
  140.  * @param string $mpurl:路徑url  
  141.  * @param unknown_type $hiddenFrom  
  142.  * @return string  
  143.  */ 
  144.     function page($num$perpage$curpage$mpurl,$hiddenFrom='') {  
  145.         $multipage = '';  
  146.         //恢復  
  147.         $mpurl .= strpos($mpurl'?') ? '&' : '?';  
  148.    
  149.         if($num > $perpage) {  
  150.             $page = 10;  
  151.             $offset = 2;  
  152.    
  153.             $pages = @ceil($num / $perpage);  //總頁數  
  154.    
  155.             if($page > $pages) {  
  156.                 $from = 1;  
  157.                 $to = $pages;  
  158.             } else {  
  159.                 //如果總頁數>10  
  160.                 $from = $curpage - $offset;   //當前頁-2  
  161.                 $to = $from + $page - 1;    //當前頁+10-3  
  162.    
  163.                 if($from < 1) {  
  164.    
  165.                     $to = $curpage + 1 - $from;  
  166.                     $from = 1;  
  167.                     if($to - $from < $page) {  
  168.                         $to = $page;  
  169.                     }  
  170.                 } elseif($to > $pages) {  
  171.                     $from = $pages - $page + 1;  
  172.                     $to = $pages;  
  173.                 }  
  174.             }  
  175.    
  176.             if ($hiddenFrom) {  
  177.                 $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="#" '.js_page($hiddenFrom,1).'>首頁</a> ' : '').  
  178.                 ($curpage > 1 ? ' <a href="#" '.js_page($hiddenFrom,$curpage - 1).'>‹‹上一頁</a> ' : '');  
  179.                 for($i = $from$i <= $to$i++) {  
  180.                     $multipage .= $i == $curpage ? '<span>'.$i.'</span> ' :  
  181.                     '<a href="#" '.js_page($hiddenFrom,$i).'>'.$i.'</a> ';  
  182.                 }  
  183.    
  184.                 $multipage .= ($curpage < $pages ? '<a href="#" '.js_page($hiddenFrom,$curpage + 1).'>下一頁››</a>' : '').  
  185.                 ($to < $pages ? '<a href="#" '.js_page($hiddenFrom,$pages).'> 末頁</a>' : '');  
  186.                 $multipage = $multipage ? '<div class="list-page">'.$multipage.'</div>' : '';  
  187.             } else {  
  188.    
  189.                 $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'page=1">首頁</a> ' : '').  
  190.                 ($curpage > 1 ? ' <a href="'.$mpurl.'page='.($curpage - 1).'">‹‹上一頁</a> ' : '');  
  191.    
  192.                 for($i = $from$i <= $to$i++) {  
  193.                     $multipage .= $i == $curpage ? '<span>'.$i.'</span> ' :  
  194.                     '<a href="'.$mpurl.'page='.$i.'">'.$i.'</a> ';  
  195.                 }  
  196.    
  197.                 $multipage .= ($curpage < $pages ? '<a href="'.$mpurl.'page='.($curpage + 1).'">下一頁››</a>' : '').  
  198.                 ($to < $pages ? '<a href="'.$mpurl.'page='.$pages.'"> 末頁</a>' : '');  
  199.                 $multipage = $multipage ? '<div class="list-page">'.$multipage.'</div>' : '';  
  200.             }  
  201.         }  
  202.         return $multipage;  
  203.     }  
  204.     //暫不用  
  205.     function page_get_start($page$ppp$totalnum) {  
  206.         $totalpage = ceil($totalnum / $ppp);  
  207.         $page =  max(1, min($totalpageintval($page)));  
  208.         return ($page - 1) * $ppp;  
  209.     }  
  210.     //暫不用  
  211.     function js_page($hiddenFrom,$page)  
  212.     {  
  213.         if ($hiddenFrom) {  
  214.             return ' onclick=javascript:$("#page").val("'.$page.'");$("#'.$hiddenFrom.'").submit(); ';  
  215.         }  
  216.     }  
  217. }  
  218. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华阴市| 嘉鱼县| 武定县| 康马县| 日喀则市| 峨眉山市| 隆林| 铜山县| 巢湖市| 柞水县| 大理市| 东阿县| 肥西县| 黎城县| 洛浦县| 宜宾县| 阜南县| 灵石县| 城市| 江安县| 咸阳市| 石城县| 南宫市| 湘阴县| 铅山县| 边坝县| 阳高县| SHOW| 家居| 封开县| 荃湾区| 德惠市| 鹤山市| 蚌埠市| 霍邱县| 乌海市| 广南县| 义马市| 富裕县| 乌恰县| 天等县|