包含三种显示方式php分页函数

网络整理 - 08-11
很不错的一个分页函数,包含三种不同的显示方式:显示所有页数、显示前页和后页、下拉列表,完整的代码如下:
<?php
// 分页制作  limit 1212, $page_rows
//函数page各个参数分别为:
//$all_rows  所有的记录数
//$per_rows  每页要显示的记录数
//$now_page  当前页的页码
//$url       当前文件的url地址
//$url_p     url传值参数
//$elide     0 -- 显示所有页数  1 -- 显示前页和后页  2 -- 显示下拉列表
function page($all_rows,$per_rows,$now_page,$url,$url_p,$elide=0)
{
$page_num = ceil($all_rows/$per_rows);  //共多少页
$page_pre = $now_page - 1;    //前一页
$page_next = $now_page + 1 ;  //下一页
if($page_num <= 1)
{
    $str.=" ";
}elseif( $elide == 0 )
  {
    for($i = 1 ; $i <= $page_num ; $i++)
        {
                    if(($i == 1) && ($now_page !=1) )
                    { 
                         $str.="<a href='".$url."?".$url_p."=1'>首页</a>  ";
                     }
                         elseif(($i == $page_num)&&($now_page !=$page_num))
                       {
                           $str.=" <a href='".$url."?".$url_p."=".$page_num."'>末页</a> ";
                        }
                           elseif($now_page == $i )
                         {
                           $str.=" 第<-".$i."->页 " ;
                                   $now = $i+1 ;
                          }  
                         else
                          {
                             $str.=" <a href='".$url."?".$url_p."=".$i."'>第".$i."页</a> " ;
                           } //end if
         }
  } 
  elseif( $elide == 1)
    {
         if( $now_page!=1 )
                    { 
                         $str.="<a href='".$url."?".$url_p."=1'>首页</a>  ";
                     }
                 if($page_pre >1)
                 {
                     $str.="<< <a href='".$url."?".$url_p."=".$page_pre."'>前一页</a>=| ";
                 }
                 $str.=" 第<-".$now_page."->页 " ;
                 $now = $i+1 ;
                 if($page_next <$page_num)
                 {
                      $str.=" |-<a href='".$url."?".$url_p."=".$page_next."'>后一页</a> >> ";
                 }
             if($now_page !=$page_num)
                       {
                           $str.=" <a href='".$url."?".$url_p."=".$page_num."'>末页</a> ";
                        }
    }else
        {
            $str .= "<form action=\"\" method=\"get\"><select name=\"page\" onchange=\"this.form.submit()\">";
            for($i = 1 ; $i <= $page_num ; $i++)
           {
               if($now_page == $i)
                     $str .="<option value =".$i." selected=\"selected\">第".$i."页</option>";
                   else
                     $str .="<option value =".$i.">第".$i."页</option>";
           }
           $str.="</select></form>";
        }
  echo $str;
  return $now ;
}
// 显示分页
if( $_GET['page'])
{
    $now_page = $_GET['page'];
        echo "当前是第 ".$now_page. " 页<br/>";
        page(100,10, $now_page,"","page");
}
else 
{
  $now_page = 1;
  echo "first page 1<br />";
  page(100,10, $now_page,"","page");
}
?>