2008-03-23

发个PHP分页函数,顺便唠叨几句。

前一小段时间在学ASP.NET,由于某些原因,暂时放弃了,回到PHP的怀抱。发现PHP才是我的最爱,趁着这两天休息,好好写写代码。这次准备写个BLOG程序给自己用,也当做练手。自离开老迷的JSCRIPT工程以后,好久没这么认真写过代码了,发现我写起代码来特别有激情。昨天晚上弄到差不多凌晨4点钟才睡,今天差不多9点钟就起床了。起床后又继续弄,早餐都懒得吃,所以今天生活特别简朴。吃了点粥,吃了碗泡面,下午才跑下楼买点菜回来煮。

好了,唠叨完了,下面发个PHP的分页函数,参考Discuzl论坛的,连风格都一样:)

:P郁闷~~这博客发起代码来煞是难看,都乱成一团了!

PHP代码
  1.  /**********************  
  2. 函数作用:分页函数  
  3. 作    者:依龙 @ www.lisijie.com.cn  
  4. 参数说明:  
  5.  $num    : 记录总数  
  6.  $prepage   : 每页显示记录数  
  7.  $curpage   : 当前页数  
  8.  $pagenum   : 页数按钮个数  
  9. 变量说明:  
  10.  $pagestr   : 最终输出的HTML  
  11.  $realpages : 实际总页数  
  12.  $from      : 页面按钮起始页数  
  13.  $to        : 页面按钮结束页数  
  14.  $offset    : 当前页面大于$pagenum时,当前页前面偏移页数  
  15.  
  16. ***********************/  
  17. function multipage ($num = 0,$prepage = 0,$curpage = 0,$url = '',$pagenum = 10) {   
  18.     
  19.  $pagestr = '';   
  20.  $url .= strpos($url,'?') ? '&' : '?';   
  21.  $realpages = 1;   
  22.   
  23.  if ($num > $prepage) {   
  24.   $realpages = @ceil($num/$prepage);   
  25.      
  26.   if ($realpages < $pagenum) {   
  27.    $from = 1;   
  28.    $to = $realpages;   
  29.   } else {   
  30.    $offset = 2;   
  31.    $from = $curpage - $offset;   
  32.    $to = $form + $pagenum;   
  33.   
  34.    if ($from < 1) {   
  35.     $from = 1;   
  36.     $to = $from + $pagenum - 1;   
  37.    } elseif ($to > $realpages) {   
  38.     $to = $realpages;   
  39.     $from = $realpages - $pagenum + 1;   
  40.    }   
  41.   }   
  42.   
  43.   $pagestr .= '<span>'.$num.'</span>';   
  44.   if ($curpage > $pagenum$pagestr .= '<a href="'.$url.'page=1">1...</a>';   
  45.   if ($curpage > 1) $pagestr .= '<a href="'.$url.'page='.($curpage-1).'">‹‹</a>';   
  46.   for ($i = $from$i <= $to$i++) {   
  47.    if ($i == $curpage) {   
  48.     $pagestr .= '<span class="on">'.$i.'</span>';   
  49.    } else {   
  50.     $pagestr .= '<a href="'.$url.'page='.$i.'">'.$i.'</a>';   
  51.    }   
  52.   }   
  53.   if ($curpage < $realpages$pagestr .= '<a href="'.$url.'page='.($curpage+1).'">››</a>';   
  54.   if ($realpages > $to$pagestr .= '<a href="'.$url.'page='.$realpages.'">'.$realpages.'...</a>';   
  55.   if ($realpages > 1) $pagestr .= '<input type="text" size="3" class="go" onkeydown="if (event.keyCode==13) {window.location=\''.$url.'page=\'+this.value;return false;}" />';   
  56.   $pagestr = '<div class="multipage">'.$pagestr.'</div>';   
  57.  }   
  58.   
  59.  return $pagestr;   
  60. }   
  61.   

差点忘了,附上分页样式:

 

CSS代码
  1. .multipage {background:#f0f0f0;border:1px solid #CAD9EA;display:inline;margin:2px;height:27px;font-size:12px;}   
  2. .multipage span {padding:0 10px;display:block;float:left;line-height:27px;}   
  3. .multipage .on {background:#CAD9EA;font-weight:bold;color:#090;}   
  4. .multipage a {color:#333;background:#f0f0f0;line-height:27px;height:27px;display:block;float:left;padding:0 10px;text-decoration:none;}   
  5. .multipage a:hover {background:#fff}   
标签:PHP | 作者:admin | 分类:网站开发 | 评论: | 浏览: