看了一些示例的代码:if($num > $perpage) {  //$num为总计录数,$perpage为每页显示几条记录
    $page = 11; //$page为页跨度,即一共显示几个页码链接
    $offset = 5;  //$offset为偏移量,即当前页码链接前面显示几个页码链接
    $realpages = @ceil($num / $perpage);  
    $pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
     if($page > $pages) {
        $from = 1;
        $to = $pages;
     } else {
        $from = $curpage - $offset;
        $to = $from + $page - 1;
         if($from < 1) {
            $to = $curpage + 1 - $from; //就是这一句不懂
            $from = 1;
             if($to - $from < $page) {
                $to = $page;
             }
         } elseif($to > $pages) {
            $from = $pages - $page + 1;
            $to = $pages;
         }
     }
请问一句上面代码中红色所标示的那句是什么含义?我个人觉的,上面代码中的这几句
if($from < 1) {
            $to = $curpage + 1 - $from; //就是这一句不懂
            $from = 1;
             if($to - $from < $page) {
                $to = $page;
             }
         } 
写成这样更好,不知是否正确
if($from < 1) {
            $to = min($page,$pages);
            $from = 1;
         } 

解决方案 »

  1.   


    这两段程序的含义不同,楼主的min函数只是取得了两个中的最小值,却并没有进行判断$to - $from < $page
      

  2.   

    = = ,分页就这么困难吗?~ 分页函数 http://topic.csdn.net/u/20100706/14/dd3bd6a1-576a-46b9-a127-dabea8bb89d8_2.html#r_67529121
    下面这个不是很好用吗?//分页函数
    function fenye($fenyeurl,$page,$totalnum,$perpage,$rewrite=0){
      $page = max($page,1);
      $totalpage = ceil($totalnum/$perpage);
      $totalpage = $totalpage < 1 ? 1 :$totalpage;
      $rangepage = 6;  if($page <= $rangepage){
        $startpage = 1;
        }else{
          if(($page + $rangepage) > $totalpage && ($totalpage - $rangepage*2) > 0){
            $startpage = $totalpage - $rangepage*2 + 1;
            }else{
              $startpage = $totalpage <= $rangepage*2 ? 1:($page - $rangepage);
            }
        }  $fileext = $rewrite ? '.html':'';  $html = '<ul>';
      $html .= '<li><a href="'.$fenyeurl.'1'.$fileext.'">&laquo;</a></li>';
      $html .= $page > 1 ? '<li><a href="'.$fenyeurl.($page-1).$fileext.'">[Prev]</a></li>':'';
      for($i = $startpage;$i < ($startpage + $rangepage*2);$i++){
        $html .= '<li><a href="'.$fenyeurl.$i.$fileext.'"'.($page == $i ? ' class="curr"':'').'>'.$i.'</a></li>';
        if($i == $totalpage) break;
        }
      $html .= $page < $totalpage ? '<li><a href="'.$fenyeurl.($page+1).$fileext.'">[Next]</a></li>':'';
      $html .= '<li><a href="'.$fenyeurl.$totalpage.$fileext.'">&raquo;</a></li>';
      $html .= '</ul>';  return $html;
      }