sbf123官网

php分页类程序员

class Page { // public param public $pageName = ‘page’; // 默认 page
标签,即 filename.php?pageName=4 中的 pageName public $prevPage = ”; //
public $nextPage = ”; // public $prevBar = ”; // 上一分页条 public
$nextBar = ”; // 下一分页条 // private param private $_totalNums = 1;
// 总记录数 private $_barNum = 10; // 分页条显示分页个数 private
$_totalPage = 0; // 总页数 private $_nowPage = 1; // 当前页 private
$_perPage = 10; // 每页显示记录数 private $_preUrl = ”; // url 前缀
private $_preNow = 0; // 当前页前显示分页个数 (范围应该是 0 至
$_barNum-1) private $_fromPage = 0; // 分页条起点 private $_toPage =
0; // 分页条末端 private $_offset = 0; // sql 查询记录偏移量 // public
functions
—————————————————————– //
构造函数 初始化分页变量 // @param $nums int 总记录数 // @param $per int
每页显示记录数 // @param $now int 当前页数 // @param $url string url前缀
默认为空 public function __construct($nums, $per = ”, $preNow = ”,
$barNum = ”, $now = ”, $url = ”) { // 初始化 $this-_set($nums, $per,
$preNow, $barNum, $now, $url); $this-_totalPage =
ceil($this-_totalNums/$this-_perPage); $this-_offset =
($this-_nowPage – 1) * $this-_perPage; } // public function
getPrevPage() { // 当前页不是第一页 if($this-_nowPage 1) { return
$this-_setLink($this-_setUrl($this-_nowPage – 1), $this-prevPage,
‘prevpage’); } } // public function getNextPage() { // 当前页小于总页数
if($this-_nowPage $this-_totalPage) { return
$this-_setLink($this-_setUrl($this-_nowPage + 1), $this-nextPage,
‘nextpage’); } } // 第一页 public function getFirstPage() { //
起点不是第一页 if(($this-_nowPage – $this-_preNow) 1) { return
$this-_setLink($this-_setUrl(1), ‘1…’, ‘firstpage’); } } // 最后一页
public function getLastPage() { // 末端不大于总页数 if(($this-_nowPage

  • $this-_preNow + $this-_barNum) = $this-_totalPage) { return
    $this-_setLink($this-_setUrl($this-_totalPage), ‘…’ .
    $this-_totalPage, ‘lastpage’); } } // 上一分页条 public function
    getPrevBar() { // 起点大于一个分页条数 if(($this-_nowPage –
    $this-_preNow) $this-_barNum) { return
    $this-_setLink($this-_setUrl(($this-_nowPage – $this-_preNow) –
    $this-_barNum), $this-prevBar, ‘prevbar’); } } // 下一分页条 public
    function getNextBar() { // 末端不大于总页数 if(($this-_nowPage –
    $this-_preNow + $this-_barNum) = $this-_totalPage) { return
    $this-_setLink($this-_setUrl($this-_fromPage + $this-_barNum),
    $this-nextBar, ‘nextbar’); } } // 分页条 public function pageBar() { //
    初始化分页条的始末端点 $this-_toPage = $this-_nowPage +
    ($this-_barNum – $this-_preNow – 1); if($this-_toPage
    $this-_totalPage) { $this-_preNow = $this-_barNum –
    ($this-_totalPage – $this-_nowPage + 1); $this-_toPage =
    $this-_totalPage; } if($this-_toPage $this-_barNum) { $this-_toPage
    = $this-_barNum; } $this-_fromPage = $this-_nowPage – $this-_preNow;
    if($this-_fromPage 1) { $this-_fromPage = 1; } // 初始化分页条 $return
    = ”; for($i = $this-_fromPage; $i = $this-_toPage; $i++) { if($i !=
    $this-_nowPage) { $return .= $this-_setLink($this-_setUrl($i), $i,
    ‘page’); } else { $return .= ‘span class=nowpage’ . $i . ‘/span’; } }
    return $return; } // 返回偏移量 用于 sql 查询 public function
    getOffset() { return $this-_offset; } // 返回总记录数 public function
    getTotalNums() { return ‘span class=totalnums’ . $this-_totalNums .
    ‘/span’; } // 显示分页 public function showPage() { return
    $this-getTotalNums() . $this-getFirstPage() . $this-getPrevBar() .
    $this-getPrevPage() . $this-pageBar() . $this-getNextPage() .
    $this-getNextBar() . $this-getLastPage(); } // private functions
    —————————————————————- //
    private function _set($nums, $per, $preNow, $barNum, $now, $url) { //
    设置总记录数 if($nums 0) { $this-_totalNums = $nums; } //
    设置每页显示记录数 if($per 0) { $this-_perPage = $per; } //
    设置当前页前显示分页个数 if($preNow 0) { $this-_preNow = $preNow; } //
    设置分页条链接个数 if($barNum 0) { $this-_barNum = $barNum; } //
    设置当前页 if(empty($now)) { // 自动获取
    if(isset($_GET[$this-pageName])) { $this-_nowPage =
    intval($_GET[$this-pageName]); } } else { // $now 已手动处理
    $this-_nowPage = intval($now); // } // 设置 url 前缀 if(!empty($url)) {
    // $url 已手动处理 $this-_preUrl = $url . (stristr($url, ‘?’) ? ” :
    ‘?’) . $this-pageName . ‘=’; } else { // 自动获取
    if(empty($_SERVER[‘QUERY_STRING’])) { // url 中不存在查询
    $this-_preUrl = $_SERVER[‘REQUEST_URI’] . ‘?’ . $this-pageName .
    ‘=’; } else { if(stristr($_SERVER[‘QUERY_STRING’], $this-pageName .
    ‘=’)) { // 查询中有 page=n(2,3…) $this-_preUrl =
    str_replace($this-pageName . ‘=’ . $this-_nowPage, ”,
    $_SERVER[‘REQUEST_URI’]); $lastCharacter =
    $this-_preUrl[strlen($this-_preUrl) – 1]; if($lastCharacter == ‘?’
    || $lastCharacter == ”) { // page=n(2,3…) 在原 url 的末尾
    $this-_preUrl .= $this-pageName . ‘=’; } else { // page=n(2,3…)
    不在原 url 的末尾 $this-_preUrl .= ” . $this-pageName . ‘=’; } } else
    { // 查询中没有 page=n(2,3…) $this-preUrl =
    $_SERVER[‘REQUEST_URI’] . ” . $this-pageName . ‘=’; } } } } //
    设置链接地址 private function _setUrl($pageNo) { return $this-_preUrl
    . $pageNo; } // 设置链接 private function _setLink($url, $link, $style
    = ”) { $style = ‘class=’ . $style . ”; return ‘a href=’ . $url . ‘ ‘ .
    $style . ” . $link . ‘/a’; }}//

使用方法

$total = 1245;//class Page($nums, $per = ”, $preNow = ”, $barNum = ”,
$now = ”, $url = ”)$page = new Page($total);$pager =
$page-showPage();$smarty-assign(‘pager’,
$pager);$smarty-display(‘index.tpl’);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章