<?php/* * ********************************************* * @类名: ??page * @参数: ??$myde_total - 总记录数 * ?????????$myde_size - 一页显示的记录数 * ?????????$myde_page - 当前页 * ?????????$myde_url - 获取当前的url * @功能: ??分页实现 * @作者: ??宋海阁 */class page { ???private $myde_total; ?????????//总记录数 ???private $myde_size; ??????????//一页显示的记录数 ???private $myde_page; ??????????//当前页 ???private $myde_page_count; ????//总页数 ???private $myde_i; ?????????????//起头页数 ???private $myde_en; ????????????//结尾页数 ???private $myde_url; ???????????//获取当前的url ???/* ????* $show_pages ????* 页面显示的格式,显示链接的页数为2*$show_pages+1。 ????* 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页] ?????*/ ???private $show_pages; ???public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) { ???????$this->myde_total = $this->numeric($myde_total); ???????$this->myde_size = $this->numeric($myde_size); ???????$this->myde_page = $this->numeric($myde_page); ???????$this->myde_page_count = ceil($this->myde_total / $this->myde_size); ???????$this->myde_url = $myde_url; ???????if ($this->myde_total < 0) ???????????$this->myde_total = 0; ???????if ($this->myde_page < 1) ???????????$this->myde_page = 1; ???????if ($this->myde_page_count < 1) ???????????$this->myde_page_count = 1; ???????if ($this->myde_page > $this->myde_page_count) ???????????$this->myde_page = $this->myde_page_count; ???????$this->limit = ($this->myde_page - 1) * $this->myde_size; ???????$this->myde_i = $this->myde_page - $show_pages; ???????$this->myde_en = $this->myde_page + $show_pages; ???????if ($this->myde_i < 1) { ???????????$this->myde_en = $this->myde_en + (1 - $this->myde_i); ???????????$this->myde_i = 1; ???????} ???????if ($this->myde_en > $this->myde_page_count) { ???????????$this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count); ???????????$this->myde_en = $this->myde_page_count; ???????} ???????if ($this->myde_i < 1) ???????????$this->myde_i = 1; ???} ???//检测是否为数字 ???private function numeric($num) { ???????if (strlen($num)) { ???????????if (!preg_match("/^[0-9]+$/", $num)) { ???????????????$num = 1; ???????????} else { ???????????????$num = substr($num, 0, 11); ???????????} ???????} else { ???????????$num = 1; ???????} ???????return $num; ???} ???//地址替换 ???private function page_replace($page) { ???????return str_replace("{page}", $page, $this->myde_url); ???} ???//首页 ???private function myde_home() { ???????if ($this->myde_page != 1) { ???????????return "<a href=‘" . $this->page_replace(1) . "‘ title=‘首页‘>首页</a>"; ???????} else { ???????????return "<p>首页</p>"; ???????} ???} ???//上一页 ???private function myde_prev() { ???????if ($this->myde_page != 1) { ???????????return "<a href=‘" . $this->page_replace($this->myde_page - 1) . "‘ title=‘上一页‘>上一页</a>"; ???????} else { ???????????return "<p>上一页</p>"; ???????} ???} ???//下一页 ???private function myde_next() { ???????if ($this->myde_page != $this->myde_page_count) { ???????????return "<a href=‘" . $this->page_replace($this->myde_page + 1) . "‘ title=‘下一页‘>下一页</a>"; ???????} else { ???????????return"<p>下一页</p>"; ???????} ???} ???//尾页 ???private function myde_last() { ???????if ($this->myde_page != $this->myde_page_count) { ???????????return "<a href=‘" . $this->page_replace($this->myde_page_count) . "‘ title=‘尾页‘>尾页</a>"; ???????} else { ???????????return "<p>尾页</p>"; ???????} ???} ???//输出 ???public function myde_write($id = ‘page‘) { ???????$str = "<div id=" . $id . ">"; ???????$str.=$this->myde_home(); ???????$str.=$this->myde_prev(); ???????if ($this->myde_i > 1) { ???????????$str.="<p class=‘pageEllipsis‘>...</p>"; ???????} ???????for ($i = $this->myde_i; $i <= $this->myde_en; $i++) { ???????????if ($i == $this->myde_page) { ???????????????$str.="<a href=‘" . $this->page_replace($i) . "‘ title=‘第" . $i . "页‘ class=‘cur‘>$i</a>"; ???????????} else { ???????????????$str.="<a href=‘" . $this->page_replace($i) . "‘ title=‘第" . $i . "页‘>$i</a>"; ???????????} ???????} ???????if ($this->myde_en < $this->myde_page_count) { ???????????$str.="<p class=‘pageEllipsis‘>...</p>"; ???????} ???????$str.=$this->myde_next(); ???????$str.=$this->myde_last(); ???????$str.="<p class=‘pageRemark‘>共<b>" . $this->myde_page_count . ???????????????"</b>页<b>" . $this->myde_total . "</b>条数据</p>"; ???????$str.="</div>"; ???????return $str; ???}}?>
配置项
<?php$host="localhost";$db_user="root";$db_pass="root";$db_name="demo";$timezone="Asia/Shanghai";$link=mysql_connect($host,$db_user,$db_pass);mysql_select_db($db_name,$link);mysql_query("SET names UTF8");header("Content-Type: text/html; charset=utf-8");?>
demo
<?phpinclude_once("config.php");require_once(‘page.class.php‘); //分页类$showrow = 10; //一页显示的行数$curpage = empty($_GET[‘page‘]) ? 1 : $_GET[‘page‘]; //当前的页,还应该处理非数字的情况$url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET[‘q‘]//省略了链接mysql的代码,测试时自行添加$sql = "SELECT * FROM article";$total = mysql_num_rows(mysql_query($sql)); //记录总条数if (!empty($_GET[‘page‘]) && $total != 0 && $curpage > ceil($total / $showrow)) ???$curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页//获取数据$sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;";$query = mysql_query($sql);?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> ???<head> ????????<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ????????<title>演示:PHP简单漂亮的分页类</title> ???????<meta name="keywords" content="php分页类" /> ???????<meta name="description" content="本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap。" /> ???????<link rel="stylesheet" type="text/css" href="http://www.sucaihuo.com/jquery/css/common.css" /> ???????<style type="text/css"> ???????????p{margin:0} ???????????#page{ ???????????????height:40px; ???????????????padding:20px 0px; ???????????} ???????????#page a{ ???????????????display:block; ???????????????float:left; ???????????????margin-right:10px; ???????????????padding:2px 12px; ???????????????height:24px; ???????????????border:1px #cccccc solid; ???????????????background:#fff; ???????????????text-decoration:none; ???????????????color:#808080; ???????????????font-size:12px; ???????????????line-height:24px; ???????????} ???????????#page a:hover{ ???????????????color:#077ee3; ???????????????border:1px #077ee3 solid; ???????????} ???????????#page a.cur{ ???????????????border:none; ???????????????background:#077ee3; ???????????????color:#fff; ???????????} ???????????#page p{ ???????????????float:left; ???????????????padding:2px 12px; ???????????????font-size:12px; ???????????????height:24px; ???????????????line-height:24px; ???????????????color:#bbb; ???????????????border:1px #ccc solid; ???????????????background:#fcfcfc; ???????????????margin-right:8px; ???????????} ???????????#page p.pageRemark{ ???????????????border-style:none; ???????????????background:none; ???????????????margin-right:0px; ???????????????padding:4px 0px; ???????????????color:#666; ???????????} ???????????#page p.pageRemark b{ ???????????????color:red; ???????????} ???????????#page p.pageEllipsis{ ???????????????border-style:none; ???????????????background:none; ???????????????padding:4px 0px; ???????????????color:#808080; ???????????} ???????????.dates li {font-size: 14px;margin:20px 0} ???????????.dates li span{float:right} ???????</style> ???</head> ???<body> ???????<div class="head"> ???????????<div class="head_inner clearfix"> ???????????????<ul id="nav"> ???????????????????<li><a href="http://www.sucaihuo.com">首 页</a></li> ???????????????????<li><a href="http://www.sucaihuo.com/templates">网站模板</a></li> ???????????????????<li><a href="http://www.sucaihuo.com/js">网页特效</a></li> ???????????????????<li><a href="http://www.sucaihuo.com/php">PHP</a></li> ???????????????????<li><a href="http://www.sucaihuo.com/site">精选网址</a></li> ???????????????</ul> ???????????????<a class="logo" href="http://www.sucaihuo.com"><img src="http://www.sucaihuo.com/Public/images/logo.jpg" alt="素材火logo" /></a> ???????????</div> ???????</div> ???????<div class="container"> ???????????<div class="demo"> ???????????????<h2 class="title"><a href="http://www.sucaihuo.com/php/223.html">教程:PHP简单漂亮的分页类</a></h2> ???????????????<div class="showData"> ???????????????????<ul class="dates"> ???????????????????????<?php while ($row = mysql_fetch_array($query)) { ?> ???????????????????????????<li> ???????????????????????????????<span><?php echo $row[‘addtime‘] ?></span> ???????????????????????????????<a target="_blank" href="http://www.sucaihuo.com/js"><?php echo $row[‘title‘] ?></a> ???????????????????????????</li> ???????????????????????<?php } ?> ???????????????????</ul> ???????????????????<!--显示数据区--> ???????????????</div> ???????????????<div class="showPage"> ???????????????????<?php ???????????????????if ($total > $showrow) {//总记录数大于每页显示数,显示分页 ???????????????????????$page = new page($total, $showrow, $curpage, $url, 2); ???????????????????????echo $page->myde_write(); ???????????????????} ????????????????????> ???????????????</div> ???????????</div> ???????</div> ???????<div class="foot"> ???????????Powered by sucaihuo.com ?本站皆为作者原创,转载请注明原文链接:<a href="http://www.sucaihuo.com" target="_blank">www.sucaihuo.com</a> ???????</div> ???????<script type="text/javascript" src="http://www.sucaihuo.com/Public/js/other/jquery.js"></script> ????</body></html>
PHP分页类
原文地址:https://www.cnblogs.com/photo520/p/9037334.html