几个很有用的文件操作php函数

几个很有用的文件操作php函数

文件读取函式

//文件读取函式

functionPHP_Read(file_name){

fd=fopen(file_name,r);

while(bufline=fgets(fd,4096)){

buf.=bufline;

}

fclose(fd);

returnbuf;

}

?>

文件写入函式

//文件写入函式

functionPHP_Write(file_name,data,method="w"){

filenum=@fopen(file_name,method);

flock(filenum,LOCK_EX);

file_data=fwrite(filenum,data);

fclose(filenum);

returnfile_data;

}

?>

静态页面生成函式

//静态页面生成函式

functionphptohtm(filefrom,fileto,u2u=1){

if(u2u==1){

data=PHP_Read(filefrom);

}else{

data=filefrom;

}

PHP_Write(fileto,data);

returntrue;

}

?>

指定条件信息数量检索函式

//指定条件信息数量检索函式

functionrec_exist(table,where){

query="selectcount(*)asnumfromtable".where;

result=mysql_query(query)ordie(nerror(1));

rowcount=mysql_fetch_array(result);

num=rowcount["num"];

if(num==0){

returnfalse;

}

returnnum;

}

?>

目录删除函式

//目录删除函式

functiondel_DIR(directory){

mydir=dir(directory);

while(file=mydir->read()){

if((is_dir("directory/file"))AND(file!=".")AND(file!="..")){

del_DIR("directory/file");

}else{

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

unlink("directory/file");

//echo"unlinkdirectory/fileok

";

}

}

}

mydir->close();

rmdir(directory);

//echo"rmdirdirectoryok

";

}

?>

目录名称合法性检测函式

//目录名称合法性检测

functionisen(str){

ret="";

for(i=0;ip=ord(substr(str,i,1));

if((p<48&p!=45&p!=46)||(p>57&p<65)||(p>90&p<97&p!=95)||p>122){

nerror("不符合规范!");

}

ret.=chr(p);

}

returnret;

}

?>

分页函式

//分页函式

functionsplitlist(HALT,LRLIST,ECHOCNT,paper,table,where,page_id,userid){

globalsplitstr,sumcnt;

if(paper==""||sumcnt==""){

query="selectcount(*)asnumfromtablewhere";

result=mysql_query(query);

row=mysql_fetch_array(result);

sumcnt=row["num"];

if(sumcnt==0){

nerror("该版内还没有选择发布新闻!");

}

paper=1;

}

sumpaper=(sumcnt-sumcnt%ECHOCNT)/ECHOCNT;

if((sumcnt%ECHOCNT)!=0)sumpaper+=1;

if(sumpaper==1&&HALT==0)return(where);

enwhere=base64_encode(base64_encode(where));

if((LRLIST*2+1)<sumpaper){

if((paper-LRLIST)<2){

tract=1;

sub=LRLIST*2+1;

}elseif((paper+LRLIST)>=sumpaper){

tract=sumpaper-(LRLIST*2);

sub=sumpaper;

}else{

tract=paper-LRLIST;

sub=paper+LRLIST;

}

}else{

tract=1;

sub=sumpaper;

}

uppaper=paper-1;

downpaper=paper+1;

startcnt=(paper-1)*ECHOCNT;

where.="limit{startcnt},{ECHOCNT}";

if(tract>1){splitstr="【<<";}

elsesplitstr="【<<";

for(i=tract;i<=sub;i++){

if(i!=paper)splitstr.="".i."";

elsesplitstr.="".i."";

}

if(sub!=sumpaper)splitstr.=">>】";

elsesplitstr.=">>】";

return(where);

}

?>

关于分页函式的使用说明

/*

####检索分页函式####

IntHALT-检索结果仅分1页时是否(1/0)显示页码条

IntLRLIST-(页码条显示页码数-1)/2

IntECHOCNT-检索时每页显示记录的数量

Intpaper-页数,预提取:paper=HTTP_GET_VARS[paper];

Varchartable-数据表名,预附值:table="db.table";

Varcharwhere-检索条件,预附值:where="wherefield=@#value@#";

Varcharenwhere-将原where进行两次base64_encode()编码后以GET的方式提交

Varcharsplitstr-页码条输出字串,执行函式后在相应的位置执行echosplitstr;

函式调用前需获取变量-

paper=HTTP_GET_VARS[paper];

sumcnt=HTTP_GET_VARS[sumcnt];

enwhere=HTTP_GET_VARS[enwhere];

Return(Varcharwhere)-分页后检索语句的检索条件

注意:本函式需调用出错处理函式nerror(error);

*/

?>

图片文件上传函式

//图片文件上传函式

functionupload_img(UploadFile,UploadFile_name,UploadFile_size,UploadPath,max_size=64){

//TimeLimit=60;//设置超时限制时间缺省时间为30秒设置为0时为不限时

//set_time_limit(TimeLimit);

if((UploadFile!="none")&&(UploadFile!="")){

FileName=UploadPath.UploadFile_name;

if(UploadFile_size<1024){

FileSize="(string)UploadFile_size"."字节";

}elseif(UploadFile_size<(1024*max_size)){

FileSize=number_format((double)(UploadFile_size/1024),1)."KB";

}else{

nerror("文件超过限制大小!");

}

//{

//FileSize="number_format((double)(UploadFile_size"/(1024*1024)),1)."MB";

//}

if(!file_exists(FileName)){

if(copy(UploadFile,FileName)){

return"UploadFile_name(FileSize)";

}else{

nerror("文件UploadFile_name上载失败!");

}

unlink(UploadFile);

}else{

nerror("文件UploadFile_name已经存在!");

}

//set_time_limit(30);//恢复缺省超时设置

}

}

?>