跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

php分页类与分页函数多种分页样式供选择

/*** 页面名称:page_class.php*/class page {private $each_disnums; //每页显示的条目数private $nums; //总条目数private $current_page; //当前被选中的页private $sub_pages; //每次显示的页数private $pagenums; //总页数private $page_array = array (); //用来构造分页的数组private $subpage_link; //每个分页的链接/**** __construct是subpages的构造函数,用来在创建类的时候自动运行.* @$each_disnums 每页显示的条目数* @nums 总条目数* @current_num 当前被选中的页* @sub_pages 每次显示的页数* @subpage_link 每个分页的链接* @subpage_type 显示分页的类型** 当@subpage_type=1的时候为普通分页模式* example:共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]* 当@subpage_type=2的时候为经典分页样式* example:当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]*/function page($each_disnums, $nums, $current_page, $sub_pages, $subpage_link) {$this->each_disnums = intval($each_disnums);$this->nums = intval($nums);if (!$current_page) {$this->current_page = 1;} else {$this->current_page = intval($current_page);}$this->sub_pages = intval($sub_pages);$this->pagenums = ceil($nums / $each_disnums);$this->subpage_link = $subpage_link;}/*** 照顾低版本*/function __construct($each_disnums, $nums, $current_page, $sub_pages, $subpage_linke) {$this->page($each_disnums, $nums, $current_page, $sub_pages, $subpage_link);}/*__destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。*/function __destruct() {unset ($each_disNums);unset ($nums);unset ($current_page);unset ($sub_pages);unset ($pageNums);unset ($page_array);unset ($subPage_link);}/*用来给建立分页的数组初始化的函数。*/function initArray() {for ($i = 0; $i sub_pages; $i++) {$this->page_array[$i] = $i;}return $this->page_array;}/*construct_num_Page该函数使用来构造显示的条目即使:[1][2][3][4][5][6][7][8][9][10]*/function construct_num_Page() {if ($this->pageNums sub_pages) {$current_array = array ();for ($i = 0; $i pageNums; $i++) {$current_array[$i] = $i +1;}} else {$current_array = $this->initArray();if ($this->current_page for ($i = 0; $i $current_array[$i] = $i +1;}}elseif ($this->current_page pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1) {for ($i = 0; $i $current_array[$i] = ($this->pageNums) - ($this->sub_pages) + 1 + $i;}} else {for ($i = 0; $i $current_array[$i] = $this->current_page - 2 + $i;}}}return $current_array;}立即学习“PHP免费学习笔记(深入)”;/*构造普通模式的分页共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]*/function subPageCss1() {$subPageCss1Str = "";$subPageCss1Str .= "共" . $this->nums . "条记录,";$subPageCss1Str .= "每页显示" . $this->each_disNums . "条,";$subPageCss1Str .= "当前第" . $this->current_page . "/" . $this->pageNums . "页 ";if ($this->current_page > 1) {$firstPageUrl = $this->subPage_link . "1";$prewPageUrl = $this->subPage_link . ($this->current_page - 1);$subPageCss1Str .= "[首页] ";$subPageCss1Str .= "[上一页] ";} else {$subPageCss1Str .= "[首页] ";$subPageCss1Str .= "[上一页] ";}if ($this->current_page pageNums) {$lastPageUrl = $this->subPage_link . $this->pageNums;$nextPageUrl = $this->subPage_link . ($this->current_page + 1);$subPageCss1Str .= " [下一页] ";$subPageCss1Str .= "[尾页] ";} else {$subPageCss1Str .= "[下一页] ";$subPageCss1Str .= "[尾页] ";}return $subPageCss1Str;}/*构造经典模式的分页当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]*/function subPageCss2() {$subPageCss2Str = "";$subPageCss2Str .= "当前第" . $this->current_page . "/" . $this->pageNums . "页 ";if ($this->current_page > 1) {$firstPageUrl = $this->subPage_link . "1";$prewPageUrl = $this->subPage_link . ($this->current_page - 1);$subPageCss2Str .= "[首页] ";$subPageCss2Str .= "[上一页] ";} else {$subPageCss2Str .= "[首页] ";$subPageCss2Str .= "[上一页] ";}$a = $this->construct_num_Page();for ($i = 0; $i $s = $a[$i];if ($s == $this->current_page) {$subPageCss2Str .= "[" . $s . "]";} else {$url = $this->subPage_link . $s;$subPageCss2Str .= "[" . $s . "]";}}if ($this->current_page pageNums) {$lastPageUrl = $this->subPage_link . $this->pageNums;$nextPageUrl = $this->subPage_link . ($this->current_page + 1);$subPageCss2Str .= " [下一页] ";$subPageCss2Str .= "[尾页] ";} else {$subPageCss2Str .= "[下一页] ";$subPageCss2Str .= "[尾页] ";}return $subPageCss2Str;}}//测试两种不同效果$t = new Page(10, 100, $_GET['p'], 5, 'page_class.php?p=');echo $t->subPageCss2(); //调用经典分页函数echo "";echo $t->subPageCss1();//调用普通分页函数复制代码

相关文章