各位条子,大家早上好!
今天给大家分享的是一款PHP网站开发常用类库。
本库中专门存放PHP网站开发时常用的类库例如验证码生成、字符串处理、内容验证等类库文件说明Evildao:网络开发专用类库Image:图像处理类库Page:分页类库String:字符串处理类库UploadFile:文件上传类库
源码过长,有想要文件版源码的可以来我的PHP交流每天都会分享技术知识、PHP优质类库,期待各路小白大神的惠顾!
好了废话不多说上源码!
Page:
?php
namespaceCommonLibrary;
classPage{
public$firstRow;//起始行数
public$listRows;//列表每页显示行数
public$parameter;//分页跳转时要带的参数
public$totalRows;//总行数
public$totalPages;//分页总页面数
public$rollPage=11;//分页栏每页显示的页数
public$lastSuffix=true;//最后一页是否显示总页数
private$p=p;//分页参数名
private$url=;//当前链接URL
private$nowPage=1;
//分页显示定制
private$config=array(
header=spanclass=rows共%TOTAL_ROW%条记录/span,
prev=,
next=,
first=1...,
last=...%TOTAL_PAGE%,
theme=%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%,
);
/**
*架构函数
*
paramarray$totalRows总的记录数*
paramarray$listRows每页显示记录数*
paramarray$parameter分页跳转的参数*/
publicfunction__construct($totalRows,$listRows=20,$parameter=array()){
C(VAR_PAGE)$this-p=C(VAR_PAGE);//设置分页参数名称
/*基础设置*/
$this-totalRows=$totalRows;//设置总记录数
$this-listRows=$listRows;//设置每页显示行数
$this-parameter=empty($parameter)?$_GET:$parameter;
$this-nowPage=empty($_GET[$this-p])?1:intval($_GET[$this-p]);
$this-nowPage=$this-nowPage0?$this-nowPage:1;
$this-firstRow=$this-listRows*($this-nowPage-1);
}
/**
*定制分页链接设置
*
paramstring$name设置名称*
paramstring$value设置值*/
publicfunctionsetConfig($name,$value){
if(isset($this-config[$name])){
$this-config[$name]=$value;
}
}
/**
*生成链接URL
*
paraminteger$page页码*
returnstring*/
privatefunctionurl($page){
returnstr_replace(urlencode([PAGE]),$page,$this-url);
}
/**
*组装分页链接
*
returnstring*/
publicfunctionshow(){
if(0==$this-totalRows)return;
/*生成URL*/
$this-parameter[$this-p]=[PAGE];
$this-url=U(ACTION_NAME,$this-parameter);
/*计算分页信息*/
$this-totalPages=ceil($this-totalRows/$this-listRows);//总页数
if(!empty($this-totalPages)$this-nowPage$this-totalPages){
$this-nowPage=$this-totalPages;
}
/*计算分页零时变量*/
$now_cool_page=$this-rollPage/2;
$now_cool_page_ceil=ceil($now_cool_page);
$this-lastSuffix$this-config[last]=$this-totalPages;
//上一页
$up_row=$this-nowPage-1;
$up_page=$up_row0?liahref=.$this-url($up_row)..$this-config[prev]./a/li:;
//下一页
$down_row=$this-nowPage+1;
$down_page=($down_row=$this-totalPages)?liahref=.$this-url($down_row)..$this-config[next]./a/li:;
//第一页
$the_first=;
if($this-totalPages$this-rollPage($this-nowPage-$now_cool_page)=1){
$the_first=liahref=.$this-url(1)..$this-config[first]./a/li;
}
//最后一页
$the_end=;
if($this-totalPages$this-rollPage($this-nowPage+$now_cool_page)$this-totalPages){
$the_end=liahref=.$this-url($this-totalPages)..$this-config[last]./a/li;
}
//数字连接
$link_page=;
for($i=1;$i=$this-rollPage;$i++){
if(($this-nowPage-$now_cool_page)=0){
$page=$i;
}elseif(($this-nowPage+$now_cool_page-1)=$this-totalPages){
$page=$this-totalPages-$this-rollPage+$i;
}else{
$page=$this-nowPage-$now_cool_page_ceil+$i;
}
if($page0$page!=$this-nowPage){
if($page=$this-totalPages){
$link_page.=liahref=.$this-url($page)..$page./a/li;
}else{
break;
}
}else{
if($page0$this-totalPages!=1){
$link_page.=liclass=activeahref=#.$page.spanclass=sr-only(current)/span/a/li;
}
}
}
//替换分页内容
$page_str=str_replace(
array(%HEADER%,%NOW_PAGE%,%UP_PAGE%,%DOWN_PAGE%,%FIRST%,%LINK_PAGE%,%END%,%TOTAL_ROW%,%TOTAL_PAGE%),
array($this-config[header],$this-nowPage,$up_page,$down_page,$the_first,$link_page,$the_end,$this-totalRows,$this-totalPages),
$this-config[theme]);
returnulclass=pagination.$page_str./ul;
}
}