정보실

웹학교

정보실

php page 함수

본문

홈페이지에 게시판이 필수이고, 게시판엔 페이지가 당연히 있겠죠?

페이지를 만드는 함수입니다.

 

PHP:

function pagination($item_count, $limit, $cur_page, $link)

{

       $page_count = ceil($item_count/$limit);

       $current_range = array(($cur_page-2 < 1 ? 1 : $cur_page-2), ($cur_page+2 > $page_count ? $page_count : $cur_page+2));

 

       // First and Last pages

       $first_page = $cur_page > 3 ? '<a href="'.sprintf($link, '1').'">1</a>'.($cur_page < 5 ? ', ' : ' ... ') : null;

       $last_page = $cur_page < $page_count-2 ? ($cur_page > $page_count-4 ? ', ' : ' ... ').'<a href="'.sprintf($link, $page_count).'">'.$page_count.'</a>' : null;

 

       // Previous and next page

       $previous_page = $cur_page > 1 ? '<a href="'.sprintf($link, ($cur_page-1)).'">Previous</a> | ' : null;

       $next_page = $cur_page < $page_count ? ' | <a href="'.sprintf($link, ($cur_page+1)).'">Next</a>' : null;

 

       // Display pages that are in range

       for ($x=$current_range[0];$x <= $current_range[1]; ++$x)

               $pages[] = '<a href="'.sprintf($link, $x).'">'.($x == $cur_page ? '<strong>'.$x.'</strong>' : $x).'</a>';

 

       if ($page_count > 1)

               return '<p class="pagination"><strong>Pages:</strong> '.$previous_page.$first_page.implode(', ', $pages).$last_page.$next_page.'</p>';

 

HTML:

pagination(

   total amount of item/rows/whatever,

   limit of items per page,

   current page number,

   url

); 

 

예:

pagination(45, 20, 1, 'http://example.com/userlist/%d.html'); 

 

결과화면:

<p class="pagination">

   <strong>Pages:</strong>

   <a href="http://example.com/userlist/1.html"><strong>1</strong></a>,

   <a href="http://example.com/userlist/2.html">2</a>,

   <a href="http://example.com/userlist/3.html">3</a>

   | <a href="http://example.com/userlist/2.html">Next</a>

</p> 

 

 

페이지 정보

조회 276회 ]  작성일15-05-07 16:15
php

웹학교