Heim  >  Artikel  >  Backend-Entwicklung  >  一个实例php mysql模板分页类_PHP教程

一个实例php mysql模板分页类_PHP教程

WBOY
WBOYOriginal
2016-07-13 16:54:45960Durchsuche

/*
 * 模板分页类,源于easp教程的数据库教程分页方法,算是easp分页的的php独立版
 * 支持动态和静态分页方式
 * easp官网http://easp.lengshi.com/
 * 作者:钟晶晶
 * 日期:2010-11-3
 * 邮箱:zhongjingjing@gmail.com
 * 博客:http://blog.zaimer.com
 * page([总记录数=1],[分页大小=20],[当前页=1],[显示页数=6],[分页参数='page'],[分页链接=当前页面],[是否静态=false])
 * 动态:
 * 简单用法:
 * $page = new page(50);
 * $page->setpager('zjj','
共有{recordcount} 个商品  当前第 {pageindex} 页 / 共 {pagecount} 页 分页: {first}{prev}  {list}  {next}{last}  转到 {jump} 页
',array("listlong"=>"6","first"=>"首页","last"=>"尾页","prev"=>"上一页","next"=>"下一页","list"=>"第*页","jump"=>"select"));
 * echo $page->getpager('zjj');
 * 全参数用法:
 * $page = new page(50,20,1,6,'page','prrr.php',false);
 * $page->setpager('zjj','
共有{recordcount} 个商品  当前第 {pageindex} 页 / 共 {pagecount} 页 分页: {first}{prev}  {list}  {next}{last}  转到 {jump} 页
',array("listlong"=>"6","first"=>"首页","last"=>"尾页","prev"=>"上一页","next"=>"下一页","list"=>"第*页","jump"=>"select"));
 * echo $page->getpager('zjj');
 * 静态:
 * $page = new page(50,20,1,6,'page','prrr{page}.html',true);
 * $page->setpager('zjj','
共有{recordcount} 个商品  当前第 {pageindex} 页 / 共 {pagecount} 页 分页: {first}{prev}  {list}  {next}{last}  转到 {jump} 页
',array("listlong"=>"6","first"=>"首页","last"=>"尾页","prev"=>"上一页","next"=>"下一页","list"=>"第*页","jump"=>"select"));
 * echo $page->getpager('zjj');
 */
class page {
 private $page_size; //每页显示的条目数
 private $total_size; //总条目数
 private $current_page; //当前被选中的页
 private $sub_pages; //每次显示的页数
 private $total_pages; //总页数
 private $page_tpl = array (); // 分页模板
 private $pageparam;
 private $pagelink;
 private $static;
 
 function __construct($total_size = 1, $page_size = 20, $current_page = 1, $sub_pages = 6, $pageparam = 'page', $pagelink = '', $static = false) {
  $this->page_size = intval ( $page_size );
  $this->total_size = intval ( $total_size );
  if (! $current_page) {
   $this->current_page = 1;
  } else {
   $this->current_page = intval ( $current_page );
  }
  $this->total_pages = ceil ( $total_size / $page_size );
  $this->sub_pages = intval ( $sub_pages );
  $this->pageparam = $pageparam;
  $this->pagelink = (empty ( $pagelink ) ? $_server ["php_self"] : $pagelink);
  $this->static = $static;
  $this->page_tpl ['default'] = array ('tpl' => '
{first}{prev}{liststart}{list}{listend}{next}{last} 跳转到{jump}页
', 'config' => array () );
 
 }
 public function __set($param, $value) {
  $this->$param = $value;
 }
 public function __get($param) {
  return $this->$param;
 }
 /*
  __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。
 */
 function __destruct() {
  unset ( $page_size ); //每页显示的条目数
  unset ( $total_size ); //总条目数
  unset ( $current_page ); //当前被选中的页
  unset ( $sub_pages ); //每次显示的页数
  unset ( $total_pages ); //总页数
  unset ( $page_tpl ); // 分页模板
  unset ( $pageparam ); //分页参数,默认page
  unset ( $pagelink );
  unset ( $static );
 }
 private function urlparameters($url = array()) {
  foreach ( $url as $key => $val ) {
   if ($key != $this->pageparam)
    $arg [] = $key . '=' . $val;
  }
  $arg [] = $this->pageparam . '=*';
  if ($this->static)
   return str_replace ( '{page}', '*', $this->pagelink );
  else
   return $this->pagelink . '?' . implode ( '&', $arg );
 }
 public function setpager($tpl_name = 'default', $tpl = '', $config = array()) {
  if (empty ( $tpl ))
   $tpl = $this->page_tpl ['default'] ['tpl'];
  if (empty ( $config ))
   $config = $this->page_tpl ['default'] ['config'];
  $this->page_tpl [$tpl_name] = array ('tpl' => $tpl, 'config' => $config );
 }
 public function getpager($tpl_name = 'default') {
  $this->getcurrentpage ();
  return $this->pager ( $this->page_tpl [$tpl_name] );
 }
 public function getcurrentpage() {
  $this->current_page = ($_get [$this->pageparam] total_pages ) ? ($_get [$this->pageparam] pageparam]) : intval ( $this->total_pages ));
 }
 public function pager($page_tpl = '') {
  if (empty ( $page_tpl ))
   $page_tpl = $this->page_tpl ['default'];
  $cfg = array ('recordcount' => intval ( $this->total_size ), 'pageindex' => intval ( $this->current_page ), 'pagecount' => intval ( $this->total_pages ), 'pagesize' => intval ( $this->page_size ), 'listlong' => intval ( $this->sub_pages ), 'listsidelong' => 2, 'list' => '*', 'currentclass' => 'current', 'link' => $this->urlparameters ( $_get ), 'first' => '«', 'prev' => '‹', 'next' => '›', 'last' => '»', 'more' => '...', 'disabledclass' => 'disabled', 'jump' => 'input', 'jumpplus' => '', 'jumpaction' => '', 'jumplong' => 50 );
  if (! empty ( $page_tpl ['config'] )) {
   foreach ( $page_tpl ['config'] as $key => $val ) {
    if (array_key_exists ( $key, $cfg ))
     $cfg [$key] = $val;
   }
  }
  $tmps教程tr = $page_tpl ['tpl'];
  $pstart = $cfg ['pageindex'] - (($cfg ['listlong'] / 2) + ($cfg ['listlong'] % 2)) + 1;
  $pend = $cfg ['pageindex'] + $cfg ['listlong'] / 2;
  if ($pstart    $pstart = 1;
   $pend = $cfg ['listlong'];
  }
  if ($pend > $cfg ['pagecount']) {
   $pstart = $cfg ['pagecount'] - $cfg ['listlong'] + 1;
   $pend = $cfg ['pagecount'];
  }
  if ($pstart    $pstart = 1;
  for($i = $pstart; $i    if ($i == $cfg ['pageindex'])
    $plist .= '' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
   else
    $plist .= ' ' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
  }
  if ($cfg ['listsidelong'] > 0) {
   if ($cfg ['listsidelong']     for($i = 1; $i      $pliststart .= '' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
    }
    $pliststart .= ($cfg ['listsidelong'] + 1) == $pstart ? '' : $cfg ['more'] . ' ';
   } else {
    if ($cfg ['listsidelong'] >= $pstart && $pstart > 1) {
     for($i = 1; $i       $pliststart .= '' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
     }
    }
   }
   if (($cfg ['pagecount'] - $cfg ['listsidelong']) > $pend) {
    $plistend = ' ' . $cfg ['more'] . $plistend;
    for($i = (($cfg ['pagecount'] - $cfg ['listsidelong']) + 1); $i      $plistend .= ' ' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
    }
   } else {
    if (($cfg ['pagecount'] - $cfg ['listsidelong'])      for($i = ($pend + 1); $i       $plistend .= ' ' . str_replace ( '*', $i, $cfg ['list'] ) . ' ';
     }
    }
   }
  }
  if ($cfg ['pageindex'] > 1) {
   $pfirst = ' ' . $cfg ['first'] . ' ';
   $pprev = ' ' . $cfg ['prev'] . ' ';
  } else {
   $pfirst = ' ' . $cfg ['first'] . ' ';
   $pprev = ' ' . $cfg ['prev'] . ' ';
  }
  if ($cfg ['pageindex']    $plast = ' ' . $cfg ['last'] . ' ';
   $pnext = ' ' . $cfg ['next'] . ' ';
  } else {
   $plast = ' ' . $cfg ['last'] . ' ';
   $pnext = ' ' . $cfg ['next'] . ' ';
  }
  switch (strtolower ( $cfg ['jump'] )) {
   case 'input' :
    $pjumpvalue = 'this.value';
    $pjump = '     $pjump .= ' onkeydown="网页特效:if(event.charcode==13||event.keycode==13){if(!isnan(' . $pjumpvalue . ')){';
    $pjump .= ($cfg ['jumpaction'] == '' ? ((strtolower ( substr ( $cfg ['link'], 0, 11 ) ) == 'javascript:') ? str_replace ( '*', $pjumpvalue, substr ( $cfg ['link'], 12 ) ) : " document.location.href='" . str_replace ( '*', ''+' . $pjumpvalue . '+'', $cfg ['link'] ) . '';') : str_replace ( "*", $pjumpvalue, $cfg ['jumpaction'] ));
    $pjump .= '}return false;}" />';
    break;
   case 'select' :
    $pjumpvalue = "this.options[this.selectedindex].value";
    $pjump = '     $pjump .= '" title="请选择要跳转到的页数"> ';
    if ($cfg ['jumplong'] == 0) {
     for($i = 0; $i       $pjump .= ' ';
     }
    } else {
     $pjumplong = intval ( $cfg ['jumplong'] / 2 );
     $pjumpstart = ((($cfg ['pageindex'] - $pjumplong)      $pjumpstart = ((($cfg ['pagecount'] - $cfg ['pageindex'])      $pjumpstart = (($pjumpstart      $j = 1;
     for($i = $pjumpstart; $i       $pjump .= ' ';
     }
     $pjumplong = $cfg ['pagecount'] - $cfg ['pageindex']      $pjumpend = $cfg ['pageindex'] + $pjumplong > $cfg ['pagecount'] ? $cfg ['pagecount'] : $cfg ['pageindex'] + $pjumplong;
     for($i = $cfg ['pageindex'] + 1; $i       $pjump .= ' ';
     }
    }
    $pjump .= '';
    break;
  }
  $patterns = array ('/{recordcount}/', '/{pagecount}/', '/{pageindex}/', '/{pagesize}/', '/{list}/', '/{liststart}/', '/{listend}/', '/{first}/', '/{prev}/', '/{next}/', '/{last}/', '/{jump}/' );
  $replace = array ($cfg ['recordcount'], $cfg ['pagecount'], $cfg ['pageindex'], $cfg ['pagesize'], $plist, $pliststart, $plistend, $pfirst, $pprev, $pnext, $plast, $pjump );
  $tmpstr = chr ( 13 ) . chr ( 10 ) . preg_replace ( $patterns, $replace, $tmpstr ) . chr ( 13 ) . chr ( 10 );
  unset ( $cfg );
  return $tmpstr;
 }
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631735.htmlTechArticle?php教程 /* * 模板分页类,源于easp教程的数据库教程分页方法,算是easp分页的的php独立版 * 支持动态和静态分页方式 * easp官网http://easp.leng...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn