티스토리 뷰


First Previous 1 2 3 ... 22 23 24 25 26 [27] 28 29 30 31 32 ... 48 49 50 Next Last
$total_pages = 25; // 전체 페이지 갯수
$count_out = 3; // 처음과 끝에 표시되는 번호 갯수
$count_in  = 5; // 현재 페이지 기준으로 표시되는 번호 갯수
$current_page = ($_GET['p'] ) ? $_GET['p'] : 1; // 현재 페이지 갯수

// 처음 표시되는 갯수
$n1 = 1;
$n2 = min($count_out, $total_pages);

// 마지막에 표시되는 갯수
$n7 = max(1,$total_pages - $count_out + 1);
$n8 = $total_pages;

// 가운데일 경우 표시
$n4 = max( $n2 + 1, $current_page - $count_in );
$n5 = min( $n7 - 1, $current_page + $count_in );
$use_middle = ($n5 -->= $n4);

$n3 = (int) ( ($n2 + $n4) / 2 );
$use_n3 = ( $use_middle && (($n4 - $n2) > 1 ) );

$n6 = (int) ( ($n5 + $n7) / 2 );
$use_n6 = ( $use_middle && ( ($n7 - $n5) > 1 )  );

$links = array();

for($i=$n1; $i <= $n2; $i++) {
	$links[$i] = $i;
}

if ( $use_n3 ) {
	$links[$n3] = '…';
}

for($i=$n4; $i <= $n5; $i++) {
	$links[$i] = $i;
}


if ( $use_n6 ) {
	$links[$n6] = '…';
}


for($i=$n7; $i <= $n8; $i++) {
	$links[$i] = $i;
}

foreach ($links as $number => $content){

	if ($number ==$current_page) {
		echo  " [" .$content . "] ";
	} else {
		if ( is_numeric($content) ) {
			echo  " [" .$content . "] ";
		} else {
			echo  $content ;
		}
	}
}


'웹개발 > Php' 카테고리의 다른 글

PHP 알려지지 않은 트릭 몇가지  (0) 2011.06.30
PHP 데코레이터 패턴 !!!!  (0) 2011.06.14
Kohana3 - 연구  (0) 2011.06.08
csv 파일 저장, 읽기  (0) 2011.03.24
php 날짜 계산 strtotime 이용  (0) 2011.02.18
댓글
D-DAY
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함