前天开始学习PHP额,之前都用.NET的,新项目需求没办法,硬着头皮开始学了,写了个分页控件的东东,贴出来大神们指点指点,至于怎么调用,就不用我说了吧
<?phpclass PageView
{
public $showurl="pageindex";


/**
 * 返回生成好的分页HTML
 * @param int 表示分页控件要显示的索引页码数
 * @param int 表示 每页显示多条数据
 * @param int 表示总数据条数
 * @param int 表示当前是第几页用于hover样式显示
 */
function page_view($indexDisplay,$pageSize,$ItemCount,$pageIndex)
{
$pageview="<div class='pagecontrols'>";
if(intval($indexDisplay)<=0)$indexDisplay=0;
if(intval($pageSize)<=0)$pageSize=20;
if(intval($ItemCount)<=0)$ItemCount=0;
if(intval($pageIndex)<=0)$pageIndex=0;
//计算出总共有多少页
$pageCount=$ItemCount%$pageSize==0?$ItemCount/$pageSize:(int)($ItemCount/$pageSize)+1;
if($indexDisplay>$pageCount) $indexDisplay=$pageCount;
if($indexDisplay<=0)
{
$pageview=$pageview."   
    <span>首页</span> <span>上一页</span>
        <span>下一页</span> <span>尾页</span>
   </div>";
}
else
{
//生成好url并且要兼容含有其他参数列表的url
$url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."?";//不带参数的url地址
$urlparams=$_SERVER['QUERY_STRING'];//URL地址的参数列表,这里需要把它转换成一个array
$url=$url.$this->SplitStrForArray($urlparams).$this->showurl."=";//这里得到的url是除了pageindex之外的完整url可以用在分页的href上
if($pageIndex<=0)//假如选取的是第一页,则首页和上一页变灰色
{
$pageview="<div class='pagecontrols'>
<span>首页</span> <span>上一页</span> ";
}
else
{
$beforeIndex=$pageIndex-1;
$beforeUrl=$url.$beforeIndex;
$pageview=$pageview."<div class='pagecontrols'>
 <a href='".$url."0'>首页</a>
 <a href='".$beforeUrl."'>上一页</a> ";
}
for($i=0;$i<$indexDisplay;$i++)
{
   //加一个判断当前选区的页数获取焦点hobver
   if($i==$pageIndex)
   {
     $pageview=$pageview."
      <a href='".$url.$i."' class='selecthover'>".($i+1)."</a>";
   }
   else
   {
     $pageview=$pageview."
      <a href='".$url.$i."'>".($i+1)."</a>";
   }
}
if($pageIndex==$pageCount-1)//假如选取的是第一页,则首页和上一页变灰色
{
$pageview=$pageview."
<span>下一页</span> <span>尾页</span>
 </div>";
}
else 
{
$nextIndex=$pageIndex+1;
$nextHref=$url.$nextIndex;
$lastIndex=$pageCount-1;
$lastHref=$url.$lastIndex;
$pageview=$pageview."
 <a href='".$nextHref."'>下一页</a>
 <a href='".$lastHref."'>尾页</a>
  </div>";
}
}

return $pageview;
}

/**
 * 处理url,把属于分页的pageindex=参数去掉,并返回
 * @param string 原字符串
 */
function SplitStrForArray($sourceStr)
{
if($sourceStr=="") return "";
$strarry= explode("&",$sourceStr);
$newstr="";
foreach($strarry as $key){
if(explode("=", $key)[0] !=$this->showurl)
{
$newstr=$newstr.$key."&";
}
}
/*if($newstr!="")
{
$newstr= substr($newstr, 0,strlen($newstr)-1);
}*/
return $newstr;
}
}
?>PHP分页控件