//本函数改自discuz的分页函数
//Modified By:[email protected]
//$num为总记录数,$perpage为每页显示数
function pagination($num,$perpage)
{
 $curr_page=$_GET['page'];
$multipage = '';
$mpurl=basename($_SERVER['PHP_SELF']).'?'.getQueryStringExceptPage();
if($num > $perpage)
{
$query_string=getQueryStringExceptPage();
$page = 10;
$offset = 3; $pages = ceil($num / $perpage);
$from = $curr_page - $offset;
$to = $curr_page + $page - $offset - 1;
if($page > $pages)
{
$from = 1;
$to = $pages;

else 
{
if($from < 1) 
{
$to = $curr_page + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages)
{
$to = $page;
}
}
elseif($to > $pages)
{
$from = $curr_page - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages)
{
$from = $pages - $page + 1;
}
}
}
$multipage .= "<a href=\"$mpurl&page=1\">&lt;&lt;</a> &nbsp;";
for($i = $from; $i <= $to; $i++)
{
if($i != $curr_page)
{
$multipage .= "<a href=\"$mpurl&page=$i\">[$i]</a>&nbsp;";
}
else
{
$multipage .= '<u><b>['.$i.']</b></u>&nbsp;';
}
}
$multipage .= $pages > $page ? " ... <a href=\"$mpurl&page=$pages\"> [$pages] &gt;&gt;</a>" : " <a href=\"$mpurl&page=$pages\">&gt;&gt;</a>";
}
return $multipage;
}
//获得除了page以外的GET查询字符串
//by:[email protected]
function getQueryStringExceptPage()
{
$query_array=explode("&",$_SERVER['QUERY_STRING']);
foreach ($query_array as $key => $value)
{
if (preg_match("/page=[\d]+/Uis",$value))
{
unset($query_array[$key]);
}
}
//print_r($query_array);
return implode("&",$query_array);
}//获得除了$item以外的GET查询字符串
//by:[email protected]
function getQueryStringExcept($item,$string='')
{
if ($string=='')
{
$string=$_SERVER['QUERY_STRING'];
}
parse_str($string, $output);
$delimit='';
foreach ($output as $key => $value)
{
if ($key!=$item)
{
$query_string.=$delimit.$key.'='.$value;
$delimit='&';
}
}
//print_r($query_array);
return $query_string;
}