当前位置:Gxlcms > PHP教程 > PHP分页函数代码分享

PHP分页函数代码分享

时间:2021-07-01 10:21:17 帮助过:14人阅读

详见 http://qxblog.sinaapp.com/?p=100

  1. //$count为总条目数,$page为当前页码,$page_size为每页显示条目数
  2. function show_page($count,$page,$page_size)
  3. {
  4. $page_count = ceil($count/$page_size); //计算得出总页数
  5. $init=1;
  6. $page_len=7;
  7. $max_p=$page_count;
  8. $pages=$page_count;
  9. //判断当前页码
  10. $page=(empty($page)||$page<0)?1:$page;
  11. //获取当前页url
  12. $url = $_SERVER['REQUEST_URI'];
  13. //去掉url中原先的page参数以便加入新的page参数
  14. $parsedurl=parse_url($url);
  15. $url_query = isset($parsedurl['query']) ? $parsedurl['query']:'';
  16. if($url_query != ''){
  17. $url_query = preg_replace("/(^|&)page=$page/",'',$url_query);
  18. $url = str_replace($parsedurl['query'],$url_query,$url);
  19. if($url_query != ''){
  20. $url .= '&';
  21. }
  22. } else {
  23. $url .= '?';
  24. }
  25. //分页功能代码
  26. $page_len = ($page_len%2)?$page_len:$page_len+1; //页码个数
  27. $pageoffset = ($page_len-1)/2; //页码个数左右偏移量
  28. $navs='';
  29. if($pages != 0){
  30. if($page!=1){
  31. $navs.="首页 "; //第一页
  32. $navs.="上页"; //上一页
  33. } else {
  34. $navs .= "首页";
  35. $navs .= "上页";
  36. }
  37. if($pages>$page_len)
  38. {
  39. //如果当前页小于等于左偏移
  40. if($page<=$pageoffset){
  41. $init=1;
  42. $max_p = $page_len;
  43. }
  44. else //如果当前页大于左偏移
  45. {
  46. //如果当前页码右偏移超出最大分页数
  47. if($page+$pageoffset>=$pages+1){
  48. $init = $pages-$page_len+1;
  49. }
  50. else
  51. {
  52. //左右偏移都存在时的计算
  53. $init = $page-$pageoffset;
  54. $max_p = $page+$pageoffset;
  55. }
  56. }
  57. }
  58. for($i=$init;$i<=$max_p;$i++)
  59. {
  60. if($i==$page){$navs.="".$i.'';}
  61. else {$navs.=" ".$i."";}
  62. }
  63. if($page!=$pages)
  64. {
  65. $navs.=" 下页 ";//下一页
  66. $navs.="末页"; //最后一页
  67. } else {
  68. $navs .= "下页";
  69. $navs .= "末页";
  70. }
  71. echo "$navs";
  72. }
  73. }

人气教程排行