麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

兩款萬能的php分頁類

2024-05-04 23:40:19
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了萬能的php分頁類,特別好用,需要使用php分頁類的朋友不要錯過。

本文為大家分享個超級好用、萬能的php分頁類,具體的實現代碼如下

第一款php分頁類

 

 
  1. <?php 
  2. /* 
  3. * To change this template, choose Tools | Templates 
  4. * and open the template in the editor. 
  5. */ 
  6.  
  7. /** 
  8. * 分頁類 
  9. * 使用方式: 
  10. * $page = new Page(); 
  11. * $page->init(1000, 20); 
  12. * $page->setNotActiveTemplate('<span>{a}</span>'); 
  13. * $page->setActiveTemplate('{a}'); 
  14. * echo $page->show(); 
  15.  
  16.  
  17. * @author 風居住的地方 
  18. */ 
  19. class Page { 
  20. /** 
  21. * 總條數 
  22. */ 
  23. private $total; 
  24. /** 
  25. * 每頁大小 
  26. */ 
  27. private $pageSize; 
  28. /** 
  29. * 總頁數 
  30. */ 
  31. private $pageNum; 
  32. /** 
  33. * 當前頁 
  34. */ 
  35. private $page; 
  36. /** 
  37. * 地址 
  38. */ 
  39. private $uri; 
  40. /** 
  41. * 分頁變量 
  42. */ 
  43. private $pageParam; 
  44. /** 
  45. * LIMIT XX,XX 
  46. */ 
  47. private $limit; 
  48. /** 
  49. * 數字分頁顯示 
  50. */ 
  51. private $listnum = 8; 
  52. /** 
  53. * 分頁顯示模板 
  54. * 可用變量參數 
  55. * {total} 總數據條數 
  56. * {pagesize} 每頁顯示條數 
  57. * {start} 本頁開始條數 
  58. * {end} 本頁結束條數 
  59. * {pagenum} 共有多少頁 
  60. * {frist} 首頁 
  61. * {pre} 上一頁 
  62. * {next} 下一頁 
  63. * {last} 尾頁 
  64. * {list} 數字分頁 
  65. * {goto} 跳轉按鈕 
  66. */ 
  67. private $template = '<div><span>共有{total}條數據</span><span>每頁顯示{pagesize}條數據</span>,<span>本頁{start}-{end}條數據</span><span>共有{pagenum}頁</span><ul>{frist}{pre}{list}{next}{last}{goto}</ul></div>'
  68. /** 
  69. * 當前選中的分頁鏈接模板 
  70. */ 
  71. private $activeTemplate = '<li class="active"><a href="javascript:;">{text}</a></li>'
  72. /** 
  73. * 未選中的分頁鏈接模板 
  74. */ 
  75. private $notActiveTemplate = '<li><a href="{url}">{text}</a></li>'
  76. /** 
  77. * 顯示文本設置 
  78. */ 
  79. private $config = array('frist' => '首頁''pre' => '上一頁''next' => '下一頁''last' => '尾頁'); 
  80. /** 
  81. * 初始化 
  82. * @param type $total 總條數 
  83. * @param type $pageSize 每頁大小 
  84. * @param type $param url附加參數 
  85. * @param type $pageParam 分頁變量 
  86. */ 
  87. public function init($total, $pageSize, $param = '', $pageParam = 'page') { 
  88. $this->total = intval($total); 
  89. $this->pageSize = intval($pageSize); 
  90. $this->pageParam = $pageParam; 
  91. $this->uri = $this->geturi($param); 
  92. $this->pageNum = ceil($this->total / $this->pageSize); 
  93. $this->page = $this->setPage(); 
  94. $this->limit = $this->setlimit(); 
  95.  
  96. /** 
  97. * 設置分頁模板 
  98. * @param type $template 模板配置 
  99. */ 
  100. public function setTemplate($template) { 
  101. $this->template = $template; 
  102.  
  103. /** 
  104. * 設置選中分頁模板 
  105. * @param type $activeTemplate 模板配置 
  106. */ 
  107. public function setActiveTemplate($activeTemplate) { 
  108. $this->activeTemplate = $activeTemplate; 
  109.  
  110. /** 
  111. * 設置未選中分頁模板 
  112. * @param type $notActiveTemplate 模板配置 
  113. */ 
  114. public function setNotActiveTemplate($notActiveTemplate) { 
  115. $this->notActiveTemplate = $notActiveTemplate; 
  116.  
  117. /** 
  118. * 返回分頁 
  119. * @return type 
  120. */ 
  121. public function show() { 
  122. return str_ireplace(array( 
  123. '{total}'
  124. '{pagesize}'
  125. '{start}'
  126. '{end}'
  127. '{pagenum}'
  128. '{frist}'
  129. '{pre}'
  130. '{next}'
  131. '{last}'
  132. '{list}'
  133. '{goto}'
  134. ), array( 
  135. $this->total, 
  136. $this->setPageSize(), 
  137. $this->star(), 
  138. $this->end(), 
  139. $this->pageNum, 
  140. $this->frist(), 
  141. $this->prev(), 
  142. $this->next(), 
  143. $this->last(), 
  144. $this->pagelist(), 
  145. $this->gopage(), 
  146. ), $this->template); 
  147.  
  148. /** 
  149. * 獲取limit起始數 
  150. * @return type 
  151. */ 
  152. public function getOffset() { 
  153. return ($this->page - 1) * $this->pageSize; 
  154.  
  155. /** 
  156. * 設置LIMIT 
  157. * @return type 
  158. */ 
  159. private function setlimit() { 
  160. return "limit " . ($this->page - 1) * $this->pageSize . ",{$this->pageSize}"
  161.  
  162. /** 
  163. * 獲取limit 
  164. * @param type $args 
  165. * @return type 
  166. */ 
  167. public function __get($args) { 
  168. if ($args == "limit") { 
  169. return $this->limit; 
  170. else { 
  171. return null
  172.  
  173. /** 
  174. * 初始化當前頁 
  175. * @return int 
  176. */ 
  177. private function setPage() { 
  178. if (!empty($_GET[$this->pageParam])) { 
  179. if ($_GET[$this->pageParam] > 0) { 
  180. if ($_GET[$this->pageParam] > $this->pageNum) 
  181. return $this->pageNum; 
  182. else 
  183. return $_GET[$this->pageParam]; 
  184. return 1; 
  185.  
  186. /** 
  187. * 初始化url 
  188. * @param type $param 
  189. * @return string 
  190. */ 
  191. private function geturi($param) { 
  192. $url = $_SERVER['REQUEST_URI'] . (strpos($_SERVER['REQUEST_URI'], "?") ? "" : "?") . $param; 
  193. $parse = parse_url($url); 
  194. if (isset($parse["query"])) { 
  195. parse_str($parse["query"], $params); 
  196. unset($params["page"]); 
  197. $url = $parse["path"] . "?" . http_build_query($params); 
  198. return $url; 
  199. else { 
  200. return $url; 
  201.  
  202. /** 
  203. * 本頁開始條數 
  204. * @return int 
  205. */ 
  206. private function star() { 
  207. if ($this->total == 0) { 
  208. return 0; 
  209. else { 
  210. return ($this->page - 1) * $this->pageSize + 1; 
  211.  
  212. /** 
  213. * 本頁結束條數 
  214. * @return type 
  215. */ 
  216. private function end() { 
  217. return min($this->page * $this->pageSize, $this->total); 
  218.  
  219. /** 
  220. * 設置當前頁大小 
  221. * @return type 
  222. */ 
  223. private function setPageSize() { 
  224. return $this->end() - $this->star() + 1; 
  225.  
  226. /** 
  227. * 首頁 
  228. * @return type 
  229. */ 
  230. private function frist() { 
  231. $html = ''
  232. if ($this->page == 1) { 
  233. $html .= $this->replace("{$this->uri}&page=1", $this->config['frist'], true); 
  234. else { 
  235. $html .= $this->replace("{$this->uri}&page=1", $this->config['frist'], false); 
  236. return $html; 
  237.  
  238. /** 
  239. * 上一頁 
  240. * @return type 
  241. */ 
  242. private function prev() { 
  243. $html = ''
  244. if ($this->page > 1) { 
  245. $html .= $this->replace($this->uri.'&page='.($this->page - 1), $this->config['pre'], false); 
  246. else { 
  247. $html .= $this->replace($this->uri.'&page='.($this->page - 1), $this->config['pre'], true); 
  248. return $html; 
  249.  
  250. /** 
  251. * 分頁數字列表 
  252. * @return type 
  253. */ 
  254. private function pagelist() { 
  255. $linkpage = ""
  256. $lastlist = floor($this->listnum / 2); 
  257. for ($i = $lastlist; $i >= 1; $i--) { 
  258. $page = $this->page - $i; 
  259. if ($page >= 1) { 
  260. $linkpage .= $this->replace("{$this->uri}&page={$page}", $page, false); 
  261. else { 
  262. continue
  263. $linkpage .= $this->replace("{$this->uri}&page={$this->page}", $this->page, true); 
  264. for ($i = 1; $i <= $lastlist; $i++) { 
  265. $page = $this->page + $i; 
  266. if ($page <= $this->pageNum) { 
  267. $linkpage .= $this->replace("{$this->uri}&page={$page}", $page, false); 
  268. else { 
  269. break
  270. return $linkpage; 
  271.  
  272. /** 
  273. * 下一頁 
  274. * @return type 
  275. */ 
  276. private function next() { 
  277. $html = ''
  278. if ($this->page < $this->pageNum) { 
  279. $html .= $this->replace($this->uri.'&page='.($this->page + 1), $this->config['next'], false); 
  280. else { 
  281. $html .= $this->replace($this->uri.'&page='.($this->page + 1), $this->config['next'], true); 
  282. return $html; 
  283.  
  284. /** 
  285. * 最后一頁 
  286. * @return type 
  287. */ 
  288. private function last() { 
  289. $html = ''
  290. if ($this->page == $this->pageNum) { 
  291. $html .= $this->replace($this->uri.'&page='.($this->pageNum), $this->config['last'], true); 
  292. else { 
  293. $html .= $this->replace($this->uri.'&page='.($this->pageNum), $this->config['last'], false); 
  294. return $html; 
  295.  
  296. /** 
  297. * 跳轉按鈕 
  298. * @return string 
  299. */ 
  300. private function gopage() { 
  301. $html = ''
  302. $html.='<input type="text" value="' . $this->page . '" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.value;location=/'' . $this->uri . '&page=/'+page+/'/'}" style="width:25px;"/><input type="button" onclick="javascript:var page=(this.previousSibling.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.previousSibling.value;location=/'' . $this->uri . '&page=/'+page+/'/'" value="GO"/>'
  303. return $html; 
  304.  
  305. /** 
  306. * 模板替換 
  307. * @param type $replace 替換內容 
  308. * @param type $result 條件 
  309. * @return type 
  310. */ 
  311. private function replace($url, $text, $result = true) { 
  312. $template = ($result ? $this->activeTemplate : $this->notActiveTemplate); 
  313.  
  314. $html = str_replace('{url}', $url, $template); 
  315. $html = str_replace('{text}', $text, $html); 
  316. return $html; 

第二款php分頁類

 

 
  1. <?php 
  2. /* 
  3. *本程序文件對分頁程序進行了封裝 
  4. * 
  5. */ 
  6.  
  7. class Page_Link 
  8. var $page_max = 10; //一組頁碼的最大數 
  9.  
  10. var $page_num = 10; //總頁數 
  11. var $length = 20; //一頁的數據條數 
  12.  
  13. var $isNextPage = true
  14. var $isFirstPage = false
  15.  
  16. function Calculation_Page_Num( $total ) 
  17. $this->page_num = ceil( $total / $this->length ); 
  18. return $this->page_num; 
  19.  
  20. function Calculation_Min_Max( $act_page = 1 ) 
  21. // 定義左右偏移量 
  22. $py_left = 0; 
  23. $py_right = 0; 
  24. // 定義左右邊界 
  25. $bj_left = 0; 
  26. $bj_right = 0; 
  27. // 定義滾動區間邊界 
  28. $gd_left = 0; 
  29. $gd_right = 0; 
  30. // 判斷是否需要分組 
  31. if ( ( $this->page_num - $this->page_max ) <= 0 ) 
  32. // 不需要分組 
  33. $bj_left = 1; 
  34. $bj_right = $this->page_num; 
  35. else 
  36. // 要進行分組 
  37. // 判斷容量的奇偶 
  38. $tmp = $this->page_max % 2; 
  39. if ( $tmp === 1 ) 
  40. // 奇數 
  41. $py_left = $py_right = ( $this->page_max - 1 ) / 2; 
  42. else 
  43. // 偶數 
  44. $py_left = $this->page_max / 2 - 1; 
  45. $py_right = $this->page_max / 2; 
  46. // 計算滾動區間 
  47. $gd_left = 1 + $py_left; 
  48. $gd_right = $this->page_num - $py_right; 
  49. // 判斷當前頁是否落入了滾動區間 
  50. if ( $act_page >= $gd_left && $act_page <= $gd_right ) 
  51. // 區間內 
  52. $bj_left = $act_page - $py_left; 
  53. $bj_right = $act_page + $py_right; 
  54. else 
  55. // 區間外 
  56. if ( ( $act_page - $py_left ) <= 1 ) 
  57. // 左側固定區間 
  58. $bj_left = 1; 
  59. $bj_right = $this->page_max; 
  60. else 
  61. $bj_left = $this->page_num - $this->page_max + 1; 
  62. $bj_right = $this->page_num; 
  63.  
  64. $res = array(); 
  65. $res['min'] = $bj_left; 
  66. $res['max'] = $bj_right; 
  67.  
  68. return $res; 
  69.  
  70. // 主方法 
  71. function make_page( $total, $act_page, $url, $param ) 
  72. $page_num = $this->Calculation_Page_Num( $total ); 
  73. $arr_min_max = $this->Calculation_Min_Max( $act_page ); 
  74.  
  75. if (!eregi("([?|&]$param=)", $url)) { 
  76. $url = strpos($url,"?")===false?$url."?":$url."&"
  77. $url = $url."$param=0"
  78.  
  79. if ( $act_page > $page_num ) 
  80. $act_page = $page_num; 
  81. // 用正則把url改成正規的 
  82. $url = eregi_replace( $param . '=[0-9]+', $param . '=0', $url ); 
  83.  
  84. $res = array(); 
  85. $d = 0; 
  86. for( $i = $arr_min_max['min'];$i <= $arr_min_max['max'];$i++ ) 
  87. if ( $i == $act_page ) 
  88. $res[$d]['url'] = ''
  89. $res[$d]['name'] = $i; 
  90. $res[$d]['no'] = $i; 
  91. else 
  92. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  93. $res[$d]['name'] = $i; 
  94. $res[$d]['no'] = $i; 
  95. $d++; 
  96.  
  97. if ( $this->isNextPage ) 
  98. $res = $this->make_before_next_link( $res, $act_page, $url, $param ); 
  99. if ( $this->isFirstPage ) 
  100. $res = $this->make_first_end_link( $res, $act_page, $url, $param ); 
  101. return $res; 
  102. //// 帶總頁數 
  103. function make_page_with_total( $total, $act_page, $url, $param ) 
  104. $page_num = $this->Calculation_Page_Num( $total ); 
  105. $arr_min_max = $this->Calculation_Min_Max( $act_page ); 
  106.  
  107. if (!eregi("([?|&]$param=)", $url)) { 
  108. $url = strpos($url,"?")===false?$url."?":$url."&"
  109. $url = $url."$param=0"
  110.  
  111. if ( $act_page > $page_num ) 
  112. $act_page = $page_num; 
  113. // 用正則把url改成正規的 
  114. $url = eregi_replace( $param . '=[0-9]+', $param . '=0', $url ); 
  115.  
  116. $res = array(); 
  117. $d = 0; 
  118. for( $i = $arr_min_max['min'];$i <= $arr_min_max['max'];$i++ ) 
  119. if ( $i == $act_page ) 
  120. $res[$d]['url'] = ''
  121. $res[$d]['name'] = $i; 
  122. $res[$d]['no'] = $i; 
  123. else 
  124. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  125. $res[$d]['name'] = $i; 
  126. $res[$d]['no'] = $i; 
  127. $d++; 
  128.  
  129. if ( $this->isNextPage ) 
  130. $res = $this->make_before_next_link( $res, $act_page, $url, $param ); 
  131. if ( $this->isFirstPage ) 
  132. $res = $this->make_first_end_link( $res, $act_page, $url, $param ); 
  133.  
  134. $total_num= ceil($total/$this->length); 
  135. $result['total']=$total_num; 
  136. $result['DATA']=$res; 
  137. return $result; 
  138.  
  139. // 附加上一頁和下一頁 
  140. function make_before_next_link( $arr, $act, $url, $param ) 
  141. $tmp = array(); 
  142.  
  143. $before = $act - 1; 
  144. $next = $act + 1; 
  145.  
  146. if ( $before < 1 ) 
  147. $before = 1; 
  148. $tmp[0]['url'] = ''
  149. $tmp[0]['name'] = "上一頁"
  150. $tmp[0]['no'] = $before; 
  151. else 
  152. $tmp[0]['url'] = str_replace( $param . '=0', $param . '=' . $before, $url ); 
  153. $tmp[0]['name'] = "上一頁"
  154. $tmp[0]['no'] = $before; 
  155.  
  156. $counts = sizeof( $arr ); 
  157. $tmp_count = sizeof( $tmp ); 
  158. for( $i = 0;$i < $counts;$i++ ) 
  159. $tmp[$tmp_count]['url'] = $arr[$i]['url']; 
  160. $tmp[$tmp_count]['name'] = $arr[$i]['name']; 
  161. $tmp[$tmp_count]['no'] = $arr[$i]['no']; 
  162. $tmp_count++; 
  163.  
  164. if ( $next > $this->page_num ) 
  165. $next = $this->page_num; 
  166. $tmp[$tmp_count]['url'] = ''
  167. $tmp[$tmp_count]['name'] = "下一頁"
  168. $tmp[$tmp_count]['no'] = $next; 
  169. else 
  170. $tmp[$tmp_count]['url'] = str_replace( $param . '=0', $param . '=' . $next, $url ); 
  171. $tmp[$tmp_count]['name'] = "下一頁"
  172. $tmp[$tmp_count]['no'] = $next; 
  173.  
  174. return $tmp; 
  175.  
  176. // 附加首頁和尾頁 
  177. function make_first_end_link( $arr, $act, $url, $param ) 
  178. $tmp = array(); 
  179.  
  180. $before = 1; 
  181. $next = $this->page_num; 
  182.  
  183. if ( $act == 1 ) 
  184. $before = 1; 
  185. $tmp[0]['url'] = ''
  186. $tmp[0]['name'] = "首頁"
  187. $tmp[0]['no'] = $before; 
  188. else 
  189. $tmp[0]['url'] = str_replace( $param . '=0', $param . '=' . $before, $url ); 
  190. $tmp[0]['name'] = "首頁"
  191. $tmp[0]['no'] = $before; 
  192.  
  193. $counts = sizeof( $arr ); 
  194. $tmp_count = sizeof( $tmp ); 
  195. for( $i = 0;$i < $counts;$i++ ) 
  196. $tmp[$tmp_count]['url'] = $arr[$i]['url']; 
  197. $tmp[$tmp_count]['name'] = $arr[$i]['name']; 
  198. $tmp[$tmp_count]['no'] = $arr[$i]['no']; 
  199. $tmp_count++; 
  200.  
  201. if ( $act == $this->page_num ) 
  202. $tmp[$tmp_count]['url'] = ''
  203. $tmp[$tmp_count]['name'] = "尾頁"
  204. $tmp[$tmp_count]['no'] = $next; 
  205. else 
  206. $tmp[$tmp_count]['url'] = str_replace( $param . '=0', $param . '=' . $next, $url ); 
  207. $tmp[$tmp_count]['name'] = "尾頁"
  208. $tmp[$tmp_count]['no'] = $next; 
  209.  
  210. return $tmp; 
  211.  
  212.  
  213. /** 
  214. * 帶上一頁<,下一頁>,省略號的分頁 
  215. * @param int $total 記錄總條數 
  216. * @param int $act_page 當前頁碼 
  217. * @param string $url url 
  218. * @param int $maxpageicon 最大顯示頁碼數 
  219. * @param int $style 上一頁,下一頁顯示樣式 
  220. * @param string $param url參數 
  221. */ 
  222. function make_page_with_points( $total,$act_page,$url,$maxpageicon,$style,$param ) 
  223. $page_num = $this->Calculation_Page_Num( $total ); //總頁數 
  224. $arr_min_max = $this->Calculation_Min_Max( $act_page ); //最大頁,最小頁  
  225. if($total==0) 
  226. return ""
  227.  
  228. if( $act_page > $page_num ) 
  229. $act_page = $page_num+1; 
  230. $page_num = $page_num+1; 
  231.  
  232. switch ($style){ 
  233. case 1: 
  234. $name_before = '前一頁'
  235. $name_next = '后一頁'
  236. break
  237. case 2: 
  238. $name_before = '<'
  239. $name_next = '>'
  240. break
  241. case 3: 
  242. $name_before = '<<'
  243. $name_next = '>>'
  244. break
  245. default
  246. $name_before = '上一頁'
  247. $name_next = '下一頁'
  248.  
  249. if (!eregi("([?|&]$param=)", $url)) { 
  250. $url = strpos($url,"?")===false?$url."?":$url."&"
  251. $url = $url."$param=0"
  252.  
  253. // 用正則把url改成正規的 
  254. $url = eregi_replace( $param . '=[0-9]+', $param . '=0', $url ); 
  255. $res = array(); 
  256. $no_before = $act_page-1; 
  257. $no_next = $act_page+1; 
  258.  
  259. //總頁數如果小于等于初始化最大呈現頁數 
  260. if ($page_num<= ($maxpageicon + 1)) 
  261. //如果當前頁數是首頁 上一頁無效 
  262. if ($act_page == 1)  
  263. $res[0]['url'] = ''
  264. $res[0]['name'] = $name_before; 
  265. $res[0]['no'] = $no_before; 
  266. else //上一頁有效 
  267. $res[0]['url'] = str_replace( $param . '=0', $param . '=' .($act_page - 1), $url ); 
  268. $res[0]['name'] = $name_before; 
  269. $res[0]['no'] = $no_before;  
  270. //循環添加頁碼 
  271. $d = 1; 
  272. for ($i = 1; $i <= $page_num; $i++) 
  273. if ($i != $act_page) 
  274. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  275. $res[$d]['name'] = $i; 
  276. $res[$d]['no'] = $i; 
  277. else //當前頁,頁碼 
  278. $res[$d]['url'] = ''
  279. $res[$d]['name'] = $i; 
  280. $res[$d]['no'] = $i; 
  281. $res[$d]['attr'] = 'current'
  282. $d++; 
  283. $last_d = count($res); 
  284. //判斷尾頁 
  285. if($act_page == $page_num) //下一頁無效 
  286. $res[$last_d]['url'] = ''
  287. $res[$last_d]['name'] = $name_next; 
  288. $res[$last_d]['no'] = $no_next;  
  289. else 
  290. $res[$last_d]['url'] = str_replace( $param . '=0', $param . '=' .($act_page + 1), $url ); 
  291. $res[$last_d]['name'] = $name_next; 
  292. $res[$last_d]['no'] = $no_next; 
  293. }else if ($page_num > ($maxpageicon + 1))//如果總頁數滿足添加省略號 
  294. {  
  295. if ($act_page <= $maxpageicon) //如果當前頁小于等于初始化數目 
  296. //如果當前頁數是首頁 上一頁無效 
  297. if ($act_page == 1)  
  298. $res[0]['url'] = ''
  299. $res[0]['name'] = $name_before; 
  300. $res[0]['no'] = $no_before; 
  301. else //上一頁有效 
  302. $res[0]['url'] = str_replace( $param . '=0', $param . '=' .($act_page - 1), $url ); 
  303. $res[0]['name'] = $name_before; 
  304. $res[0]['no'] = $no_before;  
  305. //循環添加頁碼 
  306. $d = 1; 
  307. for ($i = 1; $i <= $maxpageicon; $i++) 
  308. if ($i != $act_page) 
  309. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  310. $res[$d]['name'] = $i; 
  311. $res[$d]['no'] = $i; 
  312. else //當前頁,頁碼 
  313. $res[$d]['url'] = ''
  314. $res[$d]['name'] = $i; 
  315. $res[$d]['no'] = $i; 
  316. $res[$d]['attr'] = 'current'
  317. $d++; 
  318. $last_d = count($res); 
  319. //添加省略號 
  320. $res[$last_d]['url'] = ''
  321. $res[$last_d]['name'] = '...'
  322. $res[$last_d]['no'] = ''
  323. //總頁數 
  324. $res[$last_d+1]['url'] = str_replace( $param . '=0', $param . '=' . $page_num, $url ); 
  325. $res[$last_d+1]['name'] = $page_num; 
  326. $res[$last_d+1]['no'] = $page_num; 
  327. //下一頁 
  328. $res[$last_d+1]['url'] = str_replace( $param . '=0', $param . '=' . ($act_page + 1), $url ); 
  329. $res[$last_d+1]['name'] = $name_next; 
  330. $res[$last_d+1]['no'] = $no_next;  
  331. }else//如果當前頁大于最大顯示頁面 
  332. if ($act_page > ($page_num - $maxpageicon))//滿足后幾頁 
  333. //上一頁 
  334. $res[0]['url'] = str_replace( $param . '=0', $param . '=' .($act_page - 1), $url ); 
  335. $res[0]['name'] = $name_before; 
  336. $res[0]['no'] = $no_before; 
  337. //第一頁 
  338. $res[1]['url'] = str_replace( $param . '=0', $param . '=1', $url ); 
  339. $res[1]['name'] = 1; 
  340. $res[1]['no'] = 1;  
  341. //省略號 
  342. $res[2]['url'] = ''
  343. $res[2]['name'] = '...'
  344. $res[2]['no'] = '';  
  345. $d = 3; 
  346. for ($i = ($page_num - $maxpageicon + 1); $i <= $page_num; $i++) 
  347. if ($i != $act_page) 
  348. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  349. $res[$d]['name'] = $i; 
  350. $res[$d]['no'] = $i; 
  351. else //當前頁,頁碼 
  352. $res[$d]['url'] = ''
  353. $res[$d]['name'] = $i; 
  354. $res[$d]['no'] = $i; 
  355. $res[$d]['attr'] = 'current'
  356. $d++; 
  357. $last_d = count($res); 
  358. //判斷尾頁 
  359. if($act_page == $page_num) //下一頁無效 
  360. $res[$last_d]['url'] = ''
  361. $res[$last_d]['name'] = $name_next; 
  362. $res[$last_d]['no'] = $no_next;  
  363. else 
  364. $res[$last_d]['url'] = str_replace( $param . '=0', $param . '=' .($act_page + 1), $url ); 
  365. $res[$last_d]['name'] = $name_next; 
  366. $res[$last_d]['no'] = $no_next; 
  367.  
  368. }else//滿足處在中間 
  369. //上一頁 
  370. $res[0]['url'] = str_replace( $param . '=0', $param . '=' .($act_page - 1), $url ); 
  371. $res[0]['name'] = $name_before; 
  372. $res[0]['no'] = $no_before; 
  373. //第一頁 
  374. $res[1]['url'] = str_replace( $param . '=0', $param . '=1', $url ); 
  375. $res[1]['name'] = 1; 
  376. $res[1]['no'] = 1;  
  377. //省略號 
  378. $res[2]['url'] = ''
  379. $res[2]['name'] = '...'
  380. $res[2]['no'] = '';  
  381. for ($i = ($act_page - ($maxpageicon - 2) / 2); $i <= floor($act_page+($maxpageicon - 2) / 2); $i++) 
  382. $i = ceil($i); 
  383. if ($i != $act_page) 
  384. $res[$d]['url'] = str_replace( $param . '=0', $param . '=' . $i, $url ); 
  385. $res[$d]['name'] = $i; 
  386. $res[$d]['no'] = $i; 
  387. else //當前頁,頁碼 
  388. $res[$d]['url'] = ''
  389. $res[$d]['name'] = $i; 
  390. $res[$d]['no'] = $i; 
  391. $res[$d]['attr'] = 'current'
  392. $d++; 
  393. $last_d = count($res); 
  394. //加省略號 
  395. $res[$last_d]['url'] = ''
  396. $res[$last_d]['name'] = '...'
  397. $res[$last_d]['no'] = ''
  398. //當前頁 
  399. $res[$last_d+1]['url'] = str_replace( $param . '=0', $param . '=' . $page_num, $url ); 
  400. $res[$last_d+1]['name'] = $page_num; 
  401. $res[$last_d+1]['no'] = $page_num;  
  402. //下一頁 
  403. $res[$last_d+2]['url'] = str_replace( $param . '=0', $param . '=' . ($act_page + 1), $url ); 
  404. $res[$last_d+2]['name'] = $name_next; 
  405. $res[$last_d+2]['no'] = $no_next; 
  406. //exit;  
  407. return $res; 
  408.  
  409. ?> 

以上就是為大家分享的兩款php分頁類,希望對大家的學習有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲精品久久久久www | 毛片在哪里看 | 国产精品久久久久久久久久久久久久久久 | 黄色电影免费网址 | 蜜桃视频网站www | 色视频在线观看 | 一级黄色大片在线观看 | 毛片免费大全短视频 | 神马视频我不卡 | 亚洲二区三区在线 | 九九热在线观看视频 | 沉沦的校花奴性郑依婷c到失禁 | 久精品久久| 亚洲第一页综合 | 久久亚洲成人网 | 在线91视频 | 欧美日本中文字幕 | 精精国产xxxx视频在线播放7 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 欧美性生活久久 | av在线高清观看 | 亚洲第一页综合 | 日本精品中文字幕 | 国产欧美在线观看不卡一 | 日本精品久久久久 | 成人福利在线播放 | 国产精品久久久久久婷婷天堂 | 色妞欧美 | av日韩在线免费观看 | 高颜值美女啪啪 | 狠狠干91| wwwxxx免费视频 | 国产女同玩人妖 | 国产精品久久久久久久娇妻 | 精品日韩欧美 | 久久综合给合久久狠狠狠97色69 | 久久经典 | 久久国产精品免费视频 | 96视频在线免费观看 | 国产精品91在线 | 黄色午夜剧场 |