<?
class page{
var $output;
var $file;
var $pagestr = "page";
var $perpage;//每页条数
var $current_page;//当前页数
var $send_str;
var $total_page;//总共页数
var $page_start;
var $page_end;
var $total;
function sendstr($data){
foreach($data as $k=>$v)
{
$j++;
if($j==1)$this->send_str.='?'.$k.'='.urlencode($v);
else $this->send_str.='&'.$k.'='.urlencode($v);
}
return $this->send_str;
}
function set($perpage,$total,$current_page = false)
{
if($total<$perpage){$this->total_page = 1;}
elseif(($total%$perpage)!= 0){$this->total_page = ceil($total/$perpage);}
else {$this->total_page = intval($total/$perpage);}
if(!$current_page or $current_page<1){$current_page = 1;}
else{$current_page = $_GET[$this->pagestr];}
$this->perpage = $perpage;
$this->current_page = $current_page;
$this->total = $total;
if(!$this->file){$this->file = $_SERVER['PHP_SELF'] ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME'];}
$this->file.=$this->send_str;
strstr($this->file,'?') ? $split = '&' : $split = '?';
if($this->total_page>1){
$this->output.='共<font color=red><b>'.$total.'</b></font>条记录 每页显示<font color=red>'.$perpage.'</font>条 ';
if($current_page>10){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page-10).' title="显示前10页">前10页</a> ';
}
if($current_page>1) {
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page-1).' title="上一页">上一页</a> ';
}
$start = floor($current_page/10)*10;
$end=$start+9;
if($start<1)$start = 1;
if($end>$this->total_page)$end = $this->total_page;
for($i=$start;$i<=$end;$i++)
{
if($current_page==$i){
$this->output.='<font color=red>'.$i.' </font>';
}
else{
$this->output.='[<a href='.$this->file.$split.$this->pagestr.'='.$i.'>'.$i.'</a>] ';
}
}
if($current_page<$this->total_page){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page+1).' title="下页">下页</a> ';
}
if(($this->total_page-$current_page)>=10){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page+10).' title="显示后10页">后10页</a> ';
}
}
else $this->output=" ";
}
function limit(){
return (($this->current_page-1)*$this->perpage.','.$this->perpage);
}
function get_start_end(){
$begin=($this->current_page-1)*$this->perpage;
$end=$this->total-$begin-$this->perpage;
if($end<0)$end=0;
$start=$this->total-$begin-1;
return array('start'=>$start,'end'=>$end);
}
}
?>
<?php
$ni=new page;
$ni->set(10,290,true);
//$ni->current_page=2;
//echo $ni->limit();
//print_r($ni->get_start_end());
echo "<br>";
//echo $ni->total;
echo $ni->total_page,"ye";
echo $ni->output;
?>
class page{
var $output;
var $file;
var $pagestr = "page";
var $perpage;//每页条数
var $current_page;//当前页数
var $send_str;
var $total_page;//总共页数
var $page_start;
var $page_end;
var $total;
function sendstr($data){
foreach($data as $k=>$v)
{
$j++;
if($j==1)$this->send_str.='?'.$k.'='.urlencode($v);
else $this->send_str.='&'.$k.'='.urlencode($v);
}
return $this->send_str;
}
function set($perpage,$total,$current_page = false)
{
if($total<$perpage){$this->total_page = 1;}
elseif(($total%$perpage)!= 0){$this->total_page = ceil($total/$perpage);}
else {$this->total_page = intval($total/$perpage);}
if(!$current_page or $current_page<1){$current_page = 1;}
else{$current_page = $_GET[$this->pagestr];}
$this->perpage = $perpage;
$this->current_page = $current_page;
$this->total = $total;
if(!$this->file){$this->file = $_SERVER['PHP_SELF'] ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME'];}
$this->file.=$this->send_str;
strstr($this->file,'?') ? $split = '&' : $split = '?';
if($this->total_page>1){
$this->output.='共<font color=red><b>'.$total.'</b></font>条记录 每页显示<font color=red>'.$perpage.'</font>条 ';
if($current_page>10){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page-10).' title="显示前10页">前10页</a> ';
}
if($current_page>1) {
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page-1).' title="上一页">上一页</a> ';
}
$start = floor($current_page/10)*10;
$end=$start+9;
if($start<1)$start = 1;
if($end>$this->total_page)$end = $this->total_page;
for($i=$start;$i<=$end;$i++)
{
if($current_page==$i){
$this->output.='<font color=red>'.$i.' </font>';
}
else{
$this->output.='[<a href='.$this->file.$split.$this->pagestr.'='.$i.'>'.$i.'</a>] ';
}
}
if($current_page<$this->total_page){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page+1).' title="下页">下页</a> ';
}
if(($this->total_page-$current_page)>=10){
$this->output.='<a href='.$this->file.$split.$this->pagestr.'='.($current_page+10).' title="显示后10页">后10页</a> ';
}
}
else $this->output=" ";
}
function limit(){
return (($this->current_page-1)*$this->perpage.','.$this->perpage);
}
function get_start_end(){
$begin=($this->current_page-1)*$this->perpage;
$end=$this->total-$begin-$this->perpage;
if($end<0)$end=0;
$start=$this->total-$begin-1;
return array('start'=>$start,'end'=>$end);
}
}
?>
<?php
$ni=new page;
$ni->set(10,290,true);
//$ni->current_page=2;
//echo $ni->limit();
//print_r($ni->get_start_end());
echo "<br>";
//echo $ni->total;
echo $ni->total_page,"ye";
echo $ni->output;
?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)