/*
php 分页类
只要实现分页。不与数据库教程连接。
如果是伪静态 只需修改84行以下的A标签即可 如 "".$i."" (index_表示你的伪静态地址) 其他的A标签页是一样
*/
/*
鄙人工作时间写了个简单实用的 php 分页类 现和大家分享。。
QQ:348145486
email: tzk_php@163.com
欢迎大家一起学习交流
*/
class Page{
public $page_size="20"; //每页显示的数据数目
public $page_num; //总的数据数目
public $page_url=""; //分页的当前URL
public $pageval; //分页的当前页
public $page_ys; //总的页数
public $page_tf=false; //判断能否执行分页的值
public $page;
/**********初始化分页类************/
function __construct($page_num,$page_size=""){
$this->page_num=$page_num; //获取所有需要显示的数据数目
if($page_size!=""){
$this->page_size=$page_size; //获取每页显示数据数据
}
$this->page_url=$_SERVER['SCRIPT_NAME']; //获取当前的URL地址
if($this->page_num>$this->page_size){ //判断是否能执行分页
$this->page_ys=ceil($this->page_num/$this->page_size); //获取总的分页数
$this->page_tf=true; //将分页权限复制以便下面再次判断
}
if(!empty($_GET['page'])){ //只允许页码在分页数范围内
if($_GET['page']>="1"){
if($_GET['page']page_ys){
$this->pageval=$_GET['page'];
}else{
$this->pageval=$this->page_ys;
}
}else{
$this->pageval="1";
}
}else{
$this->pageval="1";
}
$this->page=($this->pageval-1)*$this->page_size; //查询数据库数据时的第一条数据
}
/************执行分页 返回分页按钮**********/
function page_fy($val=""){
if($this->page_tf==true){
if($val==""){
return $this->page_style_one();
}else if ($val=="1"){
return $this->page_style_two();
}elseif ($val=="2"){
return $this->page_style_three();
}
}
}
/**********分页按钮 样式一*********/
function page_style_one(){
if($this->pageval=="1"){
$up="1";
}else{
$up=$this->pageval-1;
}
if($this->pageval>=$this->page_ys){
$down=$this->page_ys;
}else{
$down=$this->pageval+1;
}
$one="首页";
$two="上一页";
$three="下一页";
$four="末页";
return $page_echo = $one.$two.$three.$four;
}
/***********分页按钮 样式二*************/
function page_style_two(){ //下面这个呢,逻辑很复杂,思维很林乱,
$page_echo="";
if($this->pageval=="1"){
$up="1";
}else{
$up=$this->pageval-1;
}
if($this->pageval>=$this->page_ys){
$down=$this->page_ys;
}else{
$down=$this->pageval+1;
}
$two="上一页";
$three="下一页";
if($this->page_ys>"6"){
if($this->pageval
$i=2;
$i_to=5;
}elseif ($this->pageval>=($this->page_ys-2)){
$i=$this->page_ys-4;
$i_to=$this->page_ys-1;
}else{
$i=$this->pageval-2;
$i_to=$this->pageval+2;
}
if($this->pageval>4){
$page_one="...";
}else{
$page_one="";
}
if($this->pagevalpage_ys-3)){
$page_two="...";
}else{
$page_two="";
}
for ($i;$i
$page_echo.="".$i.""; //如果是伪静态 只需修改A标签即可 如 "".$i."" 其他的A标签页是一样
}
}else{
for ($i=2;$ipage_ys-1);$i++){
$page_echo.="".$i."";
}
}
return $two."1".$page_one.$page_echo.$page_two."".$this->page_ys."".$three;
}
/*****************分页按钮 样式三 样式3大家可以写了。 *******************/
function page_style_three(){
return $this->page_style_two();
}
}
?>
|