phper最为常用的工具类库,值得收藏

贵州白癜风医院哪家好 http://pf.39.net/bdfyy/bdfal/171105/5817679.html

各位朋友大家好!

今天给大家带来的是phper最为常用的工具类库!

它包含了JS弹窗,页面跳转,系统基本参数上传图片,html过滤,数据库输入过滤,清理session,各种验证,格式化,获取ip地址,加载模板,图片水印,文件操作等等很多实用的功能工具,方便大家根据自己的需求进行使用和参考。

由于文件源码过长,需要的可以佳我的PHP交流群;每天都会分享技术知识、PHP优质类库,期待各路小白大神的惠顾!

好了,上源码!

/**

*常用工具类

*authorLee.

*/

classTool{

/**

*js弹窗并且跳转

*

paramstring_info

*

paramstring_url

*

returnjs

*/

staticpublicfunctionalertLocation(_info,_url){

echo;

exit();

}

/**

*js弹窗返回

*

paramstring_info

*

returnjs

*/

staticpublicfunctionalertBack(_info){

echo;

exit();

}

/**

*页面跳转

*

paramstringurl

*

returnjs

*/

staticpublicfunctionheaderUrl(url){

echo;

exit();

}

/**

*弹窗关闭

*

paramstring_info

*

returnjs

*/

staticpublicfunctionalertClose(_info){

echo;

exit();

}

/**

*弹窗

*

paramstring_info

*

returnjs

*/

staticpublicfunctionalert(_info){

echo;

exit();

}

/**

*系统基本参数上传图片专用

*

paramstring_path

*

returnnull

*/

staticpublicfunctionsysUploadImg(_path){

echo;

echo;

echo;

echo;

}

/**

*html过滤

*

paramarray

object_date

*

returnstring

*/

staticpublicfunctionhtmlString(_date){

if(is_array(_date)){

foreach(_dateas_key=gt;_value){

_string[_key]=Tool::htmlString(_value);//递归

}

}elseif(is_object(_date)){

foreach(_dateas_key=gt;_value){

_string-gt;_key=Tool::htmlString(_value);//递归

}

}else{

_string=htmlspecialchars(_date);

}

return_string;

}

/**

*数据库输入过滤

*

paramstring_data

*

returnstring

*/

staticpublicfunctionmysqlString(_data){

_data=trim(_data);

return!GPC?addcslashes(_data):_data;

}

/**

*清理session

*/

staticpublicfunctionunSession(){

if(session_start()){

session_destroy();

}

}

/**

*验证是否为空

*

paramstringstr

*

paramstringname

*

returnbool(trueorfalse)

*/

staticfunctionvalidateEmpty(str,name){

if(empty(str)){

self::alertBack(警告:.name.不能为空!);

}

}

/**

*验证是否相同

*

paramstringstr1

*

paramstringstr2

*

paramstringalert

*

returnJS

*/

staticfunctionvalidateAll(str1,str2,alert){

if(str1!=str2)self::alertBack(警告:.alert);

}

/**

*验证ID

*

paramNumberid

*

returnJS

*/

staticfunctionvalidateId(id){

if(empty(id)

!is_numeric(id))self::alertBack(警告:参数错误!);

}

/**

*格式化字符串

*

paramstringstr

*

returnstring

*/

staticpublicfunctionformatStr(str){

arr=array(,,,

,#,%,,,\,/,.,,,,^,*,(,),[,],{,},

,~,`,?,!,;,:,-,_,+,=);

foreach(arrasv){

str=str_replace(v,,str);

}

returnstr;

}

/**

*格式化时间

*

paraminttime时间戳

*

returnstring

*/

staticpublicfunctionformatDate(time=default){

date=time==default?date(Y-m-dH:i:s,time()):date(Y-m-dH:i:s,time);

returndate;

}

/**

*获得真实IP地址

*

returnstring

*/

staticpublicfunctionrealIp(){

staticrealip=NULL;

if(realip!==NULL)returnrealip;

if(isset(_SERVER)){

if(isset(_SERVER[HTTP_X_FORWARDED_FOR])){

arr=explode(,,_SERVER[HTTP_X_FORWARDED_FOR]);

foreach(arrASip){

ip=trim(ip);

if(ip!=unknown){

realip=ip;

break;

}

}

}elseif(isset(_SERVER[HTTP_CLIENT_IP])){

realip=_SERVER[HTTP_CLIENT_IP];

}else{

if(isset(_SERVER[REMOTE_ADDR])){

realip=_SERVER[REMOTE_ADDR];

}else{

realip=0.0.0.0;

}

}

}else{

if(getenv(HTTP_X_FORWARDED_FOR)){

realip=getenv(HTTP_X_FORWARDED_FOR);

}elseif(getenv(HTTP_CLIENT_IP)){

realip=getenv(HTTP_CLIENT_IP);

}else{

realip=getenv(REMOTE_ADDR);

}

}

preg_match(/[d.]{7,15}/,realip,onlineip);

realip=!empty(onlineip[0])?onlineip[0]:0.0.0.0;

returnrealip;

}

/**

*加载Smarty模板

*

paramstringhtml

*

returnnull;

*/

staticpublicfunctiondisplay(){

globaltpl;html=null;

htmlArr=explode(/,_SERVER[SCRIPT_NAME]);

html=str_ireplace(.php,.html,htmlArr[count(htmlArr)-1]);

dir=dirname(_SERVER[SCRIPT_NAME]);

firstStr=substr(dir,0,1);

endStr=substr(dir,strlen(dir)-1,1);

if(firstStr==/

firstStr==\)dir=substr(dir,1);

if(endStr!=/

endStr!=\)dir=dir./;

tpl-gt;display(dir.html);

}

/**

*创建目录

*

paramstringdir

*/

staticpublicfunctioncreateDir(dir){

if(!is_dir(dir)){

mkdir(dir,);

}

}

/**

*创建文件(默认为空)

*

paramunknown_typefilename

*/

staticpublicfunctioncreateFile(filename){

if(!is_file(filename))touch(filename);

}

/**

*正确获取变量

*

paramstringparam

*

paramstringtype

*

returnstring

*/

staticpublicfunctiongetData(param,type=post){

type=strtolower(type);

if(type==post){

returnTool::mysqlString(trim(_POST[param]));

}elseif(type==get){

returnTool::mysqlString(trim(_GET[param]));

}

}

/**

*删除文件

*

paramstringfilename

*/

staticpublicfunctiondelFile(filename){

if(file_exists(filename))unlink(filename);

}

/**

*删除目录

*

paramstringpath

*/

staticpublicfunctiondelDir(path){

if(is_dir(path))rmdir(path);

}

/**

*删除目录及地下的全部文件

*

paramstringdir

*

returnbool

*/

staticpublicfunctiondelDirOfAll(dir){

//先删除目录下的文件:

if(is_dir(dir)){

dh=opendir(dir);

while(!!file=readdir(dh)){

if(file!=.file!=..){

fullpath=dir./.file;

if(!is_dir(fullpath)){

unlink(fullpath);

}else{

self::delDirOfAll(fullpath);

}

}

}

closedir(dh);

//删除当前文件夹:

if(rmdir(dir)){

returntrue;

}else{

returnfalse;

}

}

}

/**

*验证登陆

*/

staticpublicfunctionvalidateLogin(){

if(empty(_SESSION[admin][user]))header(Location:/admin/);

}

/**

*给已经存在的图片添加水印

*

paramstringfile_path

*

returnbool

*/

staticpublicfunctionaddMark(file_path){

if(file_exists(file_path)file_exists(MARK)){

//求出上传图片的名称后缀

ext_name=strtolower(substr(file_path,strrpos(file_path,.),strlen(file_path)));

//new_name=jzy_.time().rand(,).ext_name;

store_path=ROOT_PATH.UPDIR;

//求上传图片高宽

imginfo=getimagesize(file_path);

width=imginfo[0];

height=imginfo[1];

//添加图片水印

switch(ext_name){

case.gif:

dst_im=imagecreatefromgif(file_path);

break;

case.jpg:

dst_im=imagecreatefromjpeg(file_path);

break;

case.png:

dst_im=imagecreatefrompng(file_path);

break;

}

src_im=imagecreatefrompng(MARK);

//求水印图片高宽

src_imginfo=getimagesize(MARK);

src_width=src_imginfo[0];

src_height=src_imginfo[1];

//求出水印图片的实际生成位置

src_x=width-src_width-10;

src_y=height-src_height-10;

//新建一个真彩色图像

nimage=imagecreatetruecolor(width,height);

//拷贝上传图片到真彩图像

imagecopy(nimage,dst_im,0,0,0,0,width,height);

//按坐标位置拷贝水印图片到真彩图像上

imagecopy(nimage,src_im,src_x,src_y,0,0,src_width,src_height);

//分情况输出生成后的水印图片

switch(ext_name){

case.gif:

imagegif(nimage,file_path);

break;

case.jpg:

imagejpeg(nimage,file_path);

break;

case.png:

imagepng(nimage,file_path);

break;

}

//释放资源

imagedestroy(dst_im);

imagedestroy(src_im);

unset(imginfo);

unset(src_imginfo);

//移动生成后的图片

move_uploaded_file(file_path,ROOT_PATH.UPDIR.file_path);

}

}

/**

*中文截取2,单字节截取模式

*

accesspublic

*

paramstringstr需要截取的字符串

*

paramintslen截取的长度

*

paramintstartdd开始标记处

*

returnstring

*/

staticpublicfunctioncn_substr(str,slen,startdd=0){

cfg_soft_lang=PAGECHARSET;

if(cfg_soft_lang==utf-8){

returnself::cn_substr_utf8(str,slen,startdd);

}

restr=;

c=;

str_len=strlen(str);

if(str_len

return;

}

if(str_len

slen=str_len-startdd;

}

enddd=startdd+slen-1;

for(i=0;i

if(startdd==0){

restr.=c;

}elseif(igt;startdd){

restr.=c;

}

if(ord(str[i])gt;0x80){

if(str_lengt;i+1){

c=str[i].str[i+1];

}

i++;

}else{

c=str[i];

}

if(igt;=enddd){

if(strlen(restr)+strlen(c)gt;slen){

break;

}else{

restr.=c;

break;

}

}

}

returnrestr;

}

/**

*utf-8中文截取,单字节截取模式

*

*

accesspublic

*

paramstringstr需要截取的字符串

*

paramintslen截取的长度

*

paramintstartdd开始标记处

*

returnstring

*/

staticpublicfunctioncn_substr_utf8(str,length,start=0){

if(strlen(str)

return;

}

preg_match_all(/./su,str,ar);

str=;

tstr=;

//为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取

for(i=0;isset(ar[0][i]);i++){

if(strlen(tstr)

tstr.=ar[0][i];

}else{

if(strlen(str)

str.=ar[0][i];

}else{

break;

}

}

}

returnstr;

}

/**

*删除图片,根据图片ID

*

paramintimage_id

*/

staticfunctiondelPicByImageId(image_id){

db_name=PREFIX.imagesi;

m=newModel();

data=m-gt;getOne(db_name,i.id={image_id},i.pathasp,i.big_imgasb,i.small_imgass);

foreach(dataasv){

self::delFile(ROOT_PATH.v[p]);

self::delFile(ROOT_PATH.v[b]);

self::delFile(ROOT_PATH.v[s]);

}

m-gt;del(PREFIX.images,id={image_id});

unset(m);

}

/**

*图片等比例缩放

*

paramresourceim新建图片资源(imagecreatefromjpeg/imagecreatefrompng/imagecreatefromgif)

*

paramintmaxwidth生成图像宽

*

paramintmaxheight生成图像高

*

paramstringname生成图像名称

*

paramstringfiletype文件类型(.jpg/.gif/.png)

*/

staticpublicfunctionresizeImage(im,maxwidth,maxheight,name,filetype){

pic_width=imagesx(im);

pic_height=imagesy(im);

if((maxwidthpic_widthgt;maxwidth)

(maxheightpic_heightgt;maxheight)){

if(maxwidthpic_widthgt;maxwidth){

widthratio=maxwidth/pic_width;

resizewidth_tag=true;

}

if(maxheightpic_heightgt;maxheight){

heightratio=maxheight/pic_height;

resizeheight_tag=true;

}

if(resizewidth_tagresizeheight_tag){

if(widthratio

ratio=widthratio;

else

ratio=heightratio;

}

if(resizewidth_tag!resizeheight_tag)

ratio=widthratio;

if(resizeheight_tag!resizewidth_tag)

ratio=heightratio;

newwidth=pic_width*ratio;

newheight=pic_height*ratio;

if(function_exists(imagecopyresampled)){

newim=imagecreatetruecolor(newwidth,newheight);

imagecopyresampled(newim,im,0,0,0,0,newwidth,newheight,pic_width,pic_height);

}else{

newim=imagecreate(newwidth,newheight);

imagecopyresized(newim,im,0,0,0,0,newwidth,newheight,pic_width,pic_height);

}

name=name.filetype;

imagejpeg(newim,name);

imagedestroy(newim);

}else{

name=name.filetype;

imagejpeg(im,name);

}

}

/**

*下载文件

*

paramstringfile_path绝对路径

*/

staticpublicfunctiondownFile(file_path){

//判断文件是否存在

file_path=iconv(utf-8,gb,file_path);//对可能出现的中文名称进行转码

if(!file_exists(file_path)){

exit(文件不存在!);

}

file_name=basename(file_path);//获取文件名称

file_size=filesize(file_path);//获取文件大小

fp=fopen(file_path,r);//以只读的方式打开文件

header(Content-type:application/octet-stream);

header(Accept-Ranges:bytes);

header(Accept-Length:{file_size});

header(Content-Disposition:attachment;filename={file_name});

buffer=;

file_count=0;

//判断文件是否结束

while(!feof(fp)(file_size-file_countgt;0)){

file_data=fread(fp,buffer);

file_count+=buffer;

echofile_data;

}

fclose(fp);//关闭文件

}

}

?gt;




转载请注明:http://www.aierlanlan.com/tzrz/2277.html

  • 上一篇文章:
  •   
  • 下一篇文章: