[PHP] 페이징 함수
상당히 오래전에 만든것인데 블로그에 그냥 기록을 해놓고 나중에 필요하면은 사용할 생각입니다.
참조정도로만 사용할 수 있지 않을까 싶습니다.
<?php
/***************************
* @write_pages : 한페이지에 보여줄 행
* @cur_page : 현재 페이지
* @total_page : 총 페이지
* @url : URL
* @add : ???
* 2011.03.14
**************************/
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$str = "";
$str .= "<a href='".$url."1".$add."'>처음</a> ";
// 현재 페이지로부터 앞에 몇개가 보여질지 정함
$start_page = (int) $cur_page - 6;
// 페이징 목록 숫자를 정함
if($total_page < $write_pages)
{
$write_pages = $total_page;
}
// 페이징 시작이 0보다 작다면은 0으로 시작 하도록 함
if($start_page < 0)
{
for($i=0; $i < $write_pages; $i++)
{
$k = $i + 1;
if ($cur_page != $k)
{
$str .= "<a href='".$url.$k.$add."'><span>".$k."</span></a>";
} else {
$str .= "<strong>".$k."</strong>";
}
}
} else {
// 페이징 목록 숫자를 정함
$end_page = $start_page + $write_pages;
// 최종페이지가 총 페이지 숫자를 넘어설 경우 총 페이지 값으로 전환
if($end_page > $total_page)
{
$end_page = $total_page;
}
for($i=$start_page; $i < $end_page; $i++)
{
$k = $i + 1;
if ($cur_page != $k)
{
$str .= "<a href='".$url.$k.$add."'><span>".$k."</span></a>";
} else {
$str .= "<strong>".$k."</strong>";
}
}
}
$str .= " <a href='".$url.$total_page.$add."'>맨끝</a>";
return $str;
}
?>