PHP paging function code sharing
See http://qxblog.sinaapp.com /? P = 100
- // $ Count indicates the total number of entries, $ page indicates the current page number, and $ page_size indicates the number of entries displayed on each page.
- Function show_page ($ count, $ page, $ page_size)
- {
- $ Page_count = ceil ($ count/$ page_size); // calculates the total number of pages.
- $ Init = 1;
- $ Page_len = 7;
- $ Max_p = $ page_count;
- $ Pages = $ page_count;
- // Determine the current page number
- $ Page = (empty ($ page) | $ page <0 )? 1: $ page;
- // Obtain the url of the current page
- $ Url = $ _ SERVER ['request _ URI '];
- // Remove the original page parameter from the url to add a new page parameter.
- $ Parsedurl = parse_url ($ url );
- $ Url_query = isset ($ parsedurl ['query'])? $ Parsedurl ['query']: '';
- If ($ url_query! = ''){
- $ Url_query = preg_replace ("/(^ | &) page = $ page/", '', $ url_query );
- $ Url = str_replace ($ parsedurl ['query'], $ url_query, $ url );
- If ($ url_query! = ''){
- $ Url. = '&';
- }
- } Else {
- $ Url. = '? ';
- }
- // Code of the paging function
- $ Page_len = ($ page_len % 2 )? $ Page_len: $ page_len + 1; // Number of page numbers
- $ Pageoffset = ($ page_len-1)/2; // page number offset between left and right
- $ Navs = '';
- If ($ pages! = 0 ){
- If ($ page! = 1 ){
- $ Navs. = "homepage"; // The first page
- $ Navs. = "previous page"; // Previous Page
- } Else {
- $ Navs. = "homepage ";
- $ Navs. = "previous page ";
- }
- If ($ pages> $ page_len)
- {
- // If the current page is less than or equal to the left offset
- If ($ page <= $ pageoffset ){
- $ Init = 1;
- $ Max_p = $ page_len;
- }
- Else // if the current page is greater than the left offset
- {
- // If the right offset of the current page number exceeds the maximum page number
- If ($ page + $ pageoffset >=$ pages + 1 ){
- $ Init = $ pages-$ page_len + 1;
- }
- Else
- {
- // Calculation when both the left and right offsets exist
- $ Init = $ page-$ pageoffset;
- $ Max_p = $ page + $ pageoffset;
- }
- }
- }
- For ($ I = $ init; $ I <= $ max_p; $ I ++)
- {
- If ($ I = $ page) {$ navs. = "". $ I .'';}
- Else {$ navs. = "". $ I ."";}
- }
- If ($ page! = $ Pages)
- {
- $ Navs. = "next page"; // Next page
- $ Navs. = "Last page"; // Last Page
- } Else {
- $ Navs. = "next page ";
- $ Navs. = "Last page ";
- }
- Echo "$ navs ";
- }
- }
|