这是一款php分页代码是一款经典的可自动判断url参数再进行分页的实例代码,同时自定了上页,下页,首页,尾页,同时还支持select下拉框跳转代码.
php 经典的分页代码类代码如下:
class page{ var $page_name = "page" ; var $next_page = '下一页' ; var $pre_page = '上一页' ; var $first_page = '首页' ; var $last_page = '尾页' ; var $pre_bar = '<<' ; var $next_bar = '>>' ; var $format_left = '' ; var $format_right = '' ; var $pagebarnum =5; var $totalpage =0; var $nowindex =1; var $url = "" ; var $offset =0; var $rewrite = array (); function page( $array ) { if ( is_array ( $array )){ if (! array_key_exists ( 'total' , $array )) $this ->error(__function__, 'need a param of total' ); $total = intval ( $array [ 'total' ]); $perpage =( array_key_exists ( 'perpage' , $array ))? intval ( $array [ 'perpage' ]):10; $nowindex =( array_key_exists ( 'nowindex' , $array ))? intval ( $array [ 'nowindex' ]): '' ; $url =( array_key_exists ( 'url' , $array ))? $array [ 'url' ]: '' ; $action = ( array_key_exists ( 'action' , $array )) ? $array [ 'action' ] : '' ; $id0 = ( array_key_exists ( 'id0' , $array )) ? $array [ 'id0' ] : '' ; $id1 = ( array_key_exists ( 'id1' , $array )) ? $array [ 'id1' ] : '' ; $id2 = ( array_key_exists ( 'id2' , $array )) ? $array [ 'id2' ] : '' ; $id3 = ( array_key_exists ( 'id3' , $array )) ? $array [ 'id3' ] : '' ; } else { $total = $array ; $perpage =10; $nowindex = '' ; $url = '' ; $action = '' ; $id0 = '' ; $id1 = '' ; $id2 = '' ; $id3 = '' ; } if ((! is_int ( $total ))||( $total <0)) $this ->error(__function__, $total . ' is not a positive integer!' ); if ((! is_int ( $perpage ))||( $perpage <=0)) $this ->error(__function__, $perpage . ' is not a positive integer!' ); if (! empty empty ( $array [ 'page_name' ])) $this ->set( 'page_name' , $array [ 'page_name' ]); $this ->_set_nowindex( $nowindex ); $this ->_set_url( $url ); $this ->totalpage= ceil ( $total / $perpage ); $this ->offset=( $this ->nowindex-1)* $perpage ; $this ->action = $action ; $this ->rewrite = array ( 'action' => $action , 'id0' => $id0 , 'id1' => $id1 , 'id2' => $id2 , 'id3' => $id3 ); } function set( $var , $value ) { if (in_array( $var ,get_object_vars( $this ))) $this -> $var = $value ; else { $this ->error(__function__, $var . " does not belong to pb_page!" ); } } function next_page( $style = '' ){ if ( $this ->nowindex< $this ->totalpage){ return $this ->_get_link( $this ->_get_url( $this ->nowindex+1), $this ->next_page, $style ); } return '<a class="' . $style . '">' . $this ->next_page. '</a>' ; } function pre_page( $style = '' ){ if ( $this ->nowindex>1){ return $this ->_get_link( $this ->_get_url( $this ->nowindex-1), $this ->pre_page, $style ); } return '<a class="' . $style . '">' . $this ->pre_page. '</a>' ; } function first_page( $style = '' ){ if ( $this ->nowindex==1){ return '<a class="' . $style . '">' . $this ->first_page. '</a>' ; } return $this ->_get_link( $this ->_get_url(1), $this ->first_page, $style ); } function last_page( $style = '' ){ if ( $this ->nowindex== $this ->totalpage|| $this ->totalpage==0){ return '<a class="' . $style . '">' . $this ->last_page. '</a>' ; } return $this ->_get_link( $this ->_get_url( $this ->totalpage), $this ->last_page, $style ); } function nowbar( $style = '' , $nowindex_style = '' ) { $plus = ceil ( $this ->pagebarnum/2); if ( $this ->pagebarnum- $plus + $this ->nowindex> $this ->totalpage) $plus =( $this ->pagebarnum- $this ->totalpage+ $this ->nowindex); $begin = $this ->nowindex- $plus +1; $begin =( $begin >=1)? $begin :1; $return = '' ; for ( $i = $begin ; $i < $begin + $this ->pagebarnum; $i ++) { if ( $i <= $this ->totalpage){ if ( $i != $this ->nowindex) $return .= $this ->_get_text( $this ->_get_link( $this ->_get_url( $i ), $i , $style )); else $return .= $this ->_get_text( '<a class="' . $nowindex_style . '">' . $i . '</a>' ); } else { break ; } $return .= " " ; } unset( $begin ); return $return ; } /** * 获取显示跳转按钮的代码 * * @return string */ function select() { $return = '<select name="pb_page_select">' ; for ( $i =1; $i <= $this ->totalpage; $i ++) { if ( $i == $this ->nowindex){ $return .= '<option value="' . $i . '" selected>' . $i . '</option>' ; } else { $return .= '<option value="' . $i . '">' . $i . '</option>' ; } } unset( $i ); $return .= '</select>' ; return $return ; } /** * 获取mysql教程 语句中limit需要的值 * * @return string */ function offset() { return $this ->offset; } /** * 控制分页显示风格(你可以增加相应的风格) * * @param int $mode * @return string */ function show( $mode =1) { switch ( $mode ) { case '1' : $this ->next_page= '下一页' ; $this ->pre_page= '上一页' ; return $this ->pre_page(). $this ->nowbar(). $this ->next_page(). '第' . $this ->select(). '页' ; break ; case '2' : $this ->next_page= '下一页' ; $this ->pre_page= '上一页' ; $this ->first_page= '首页' ; $this ->last_page= '尾页' ; return $this ->first_page(). $this ->pre_page(). '[第' . $this ->nowindex. '页]' . $this ->next_page(). $this ->last_page(). '第' . $this ->select(). '页' ; break ; case '3' : $this ->next_page= '下一页' ; $this ->pre_page= '上一页' ; $this ->first_page= '首页' ; $this ->last_page= '尾页' ; return $this ->first_page( "page_box" ). "" . $this ->pre_page( "page_box" ). "" . $this ->nowbar( "page_box_a" , "page_box_b" ). "" . $this ->next_page( "page_box" ). "" . $this ->last_page( "page_box" ). "<a class=" clear "></a>" ; break ; case '4' : $this ->next_page= '下一页' ; $this ->pre_page= '上一页' ; return $this ->pre_page(). $this ->nowbar(). $this ->next_page(); break ; case '5' : return $this ->pre_bar(). $this ->pre_page(). $this ->nowbar(). $this ->next_page(). $this ->next_bar(); break ; } } function _set_url( $url = "" ) { if (! empty empty ( $url )){ $this ->url= $url .(( stristr ( $url , '?' ))? '&' : '?' ). $this ->page_name. "=" ; } else { if ( empty empty ( $_server [ 'query_string' ])){ $this ->url= $_server [ 'request_uri' ]. "?" . $this ->page_name. "=" ; } else { if ( stristr ( $_server [ 'query_string' ], $this ->page_name. '=' )){ $this ->url= str_replace ( $this ->page_name. '=' . $this ->nowindex, '' , $_server [ 'request_uri' ]); $last = $this ->url[ strlen ( $this ->url)-1]; if ( $last == '?' || $last == '&' ){ $this ->url.= $this ->page_name. "=" ; } else { $this ->url.= '&' . $this ->page_name. "=" ; } } else { $this ->url= $_server [ 'request_uri' ]. '&' . $this ->page_name. '=' ; } } } } function _set_nowindex( $nowindex ) { if ( empty empty ( $nowindex )){ if (isset( $_get [ $this ->page_name])){ $this ->nowindex= intval ( $_get [ $this ->page_name]); } } else { $this ->nowindex= intval ( $nowindex ); } } function _get_url( $pageno =1) { global $_cfg ; $arr = $this ->rewrite; //print_r($arr); //print_r($this->url.$pageno); if ( $_cfg [ 'urlrewrite' ] && ! empty empty ( $arr [ 'action' ])){ return url_rewrite( $arr [ 'action' ], array ( 'id0' => $arr [ 'id0' ], 'id1' => $arr [ 'id1' ], 'id2' => $arr [ 'id2' ], 'id3' => $arr [ 'id3' ], 'page' => $pageno )); } else { return $this ->url. $pageno ; } } function _get_text( $str ) { return $this ->format_left. $str . $this ->format_right; } function _get_link( $url , $text , $style = '' ){ $style =( empty empty ( $style ))? '' : 'class="' . $style . '"' ; return '<a ' . $style . ' href="' . $url . '">' . $text . '</a>' ; } function error( $function , $errormsg ) //开源代码phpfensi.com { die ( 'error in file <b>' .__file__. '</b> ,function <b>' . $function . '()</b> :' . $errormsg ); } }声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27961