自己写的一个分页函数,可以使用

<?php 

/**
* DEMO10
* 功能:分页
* author:wenzl
* 分页中心方法DEMO
* 功能智能提供数字分页
* $page 当前页码
* $pageSize 每页数据条数
* $dataTotal 数据总数
* | $number 设置可视分页项数
* | [1][2][3][4][5][6]
*/
function getPage($page=1,$pageSize=5,$dataTotal=100,$number=5){
	$pageCnt = ceil($dataTotal/$pageSize);//总页数
	$groupCnt = ceil($pageCnt/$number);
	$k=1;	
	$pageTemp = array();
	for($i=1;$i<=$groupCnt;$i++){
		if($i==1){
			for ($j=1; $j<=$number+1; $j++) {
				$k<=$pageCnt &&
				$pageTemp[$i][$j] = $k++;
			}
			$k--;
		}else{
			for ($j=1; $j<=$number+2; $j++) {
				$k<=$pageCnt &&
				$pageTemp[$i][$j] = $k++;
			}
			$k--;
		}
		$k--;
	}
	$bs = floor($page/$number);
	$ys = $page%$number>=1?1:0;
	$step = $bs + $ys;
	$step = $ys == 0 ? $bs : $step;

	
	$prevPage = isset($page) && 
	$page <= 1 ? 1 : $page - 1 ;
	
	$nextPage = isset($page) && 
	$page > $pageCnt ? $pageCnt : $page + 1;
	/**
	* 分页结果
	*/
	return array(
			'page'=>$page,
			'number'=>$number,
			'pageCnt'=>$pageCnt,
			'pageTemp'=>$pageTemp[$step],
			'prevPage'=>$prevPage,
			'pageSize'=>$pageSize,
			'nextPage'=>$nextPage,
			'groupCnt'=>$groupCnt,
			'dataTotal'=>$dataTotal,
		);
}


// echo "<pre>";
// print_r(getPage(10));
// echo "</pre>";


/**
* 分页用例
*/

$page = isset($_GET['page']) ? $_GET['page'] : 1;
$pageSize = 5;
$dataTotal = 120;
$number = 6 ;
$pageArray = getPage($page,$pageSize,$dataTotal,$number);


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>Document</title>
	<style>
	.page ul{
		list-style: none;		
	}
	.page ul li{
		display: inline-block;
		width: 14px;
		height: 14px;
		line-height: 14px;
		border:1px solid #C80000;
		padding:3px;
		color: #C80000;
		cursor: pointer;
		text-align: center;
	}
	</style>
</head>
<body>
	<div class="page">
		<ul>
			<li><a href="?page=1"><<</a></li>
			<li><a href="?page=<?php echo $pageArray['prevPage'];?>"><</a></li>
			<?php foreach ($pageArray['pageTemp'] as $key => $p) {?>				
			<li>
				<?php if($page != $p):?>
				<a href="?page=<?php echo $p;?>"><?php echo $p; ?></a>
				<?php else:?>
				<b><?php echo $p; ?></b>
				<?php endif;?>
			</li>
			<?php }?>
			<li><a href="?page=<?php echo $pageArray['nextPage'];?>">></a></li>
			<li><a href="?page=<?php echo $pageArray['pageCnt'];?>">>></a></li>
		</ul>
	</div>
</body>
</html>

 

posted @ 2014-01-26 16:28  猿来如些  阅读(331)  评论(1编辑  收藏  举报