分类:
2008-04-18 08:41:08
很有用的一些函数,你可以作为源码保存,然后以后避免重复编写。
文件读取函数
//文件读取函数
function PHP_Read(file_name) {
fd=fopen(file_name,r);
while(bufline=fgets(fd, 4096)){
buf.=bufline;
}
fclose(fd);
return buf;
}
?>
文件写入函数
//文件写入函数
function PHP_Write(file_name,data,method="w") {
filenum=@fopen(file_name,method);
flock(filenum,LOCK_EX);
file_data=fwrite(filenum,data);
fclose(filenum);
return file_data;
}
?>
静态页面生成函数
//静态页面生成函数
function phptohtm(filefrom,fileto,u2u=1){
if(u2u==1){
data=PHP_Read(filefrom);
}else{
data=filefrom;
}
PHP_Write(fileto,data);
return true;
}
?>
指定条件信息数量检索函数
//指定条件信息数量检索函数
function rec_exist(table,where){
query="select count(*) as num from table ".where;
result=mysql_query(query) or die(nerror(1));
rowcount=mysql_fetch_array(result);
num=rowcount["num"];
if (num==0){
return false;
}
return num;
}
?>
目录删除函数
//目录删除函数
function del_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 "unlink directory/file ok ";
}
}
}
mydir->close();
rmdir(directory);
//echo "rmdir directory ok ";
}
?>
目录名称合法性检测函数
//目录名称合法性检测
function isen(str){
ret="";
for(i=0;i p=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);
}
return ret;
}
?>
分页函数
//分页函数
function splitlist(HALT,LRLIST,ECHOCNT,paper,table,where,page_id,userid){
global splitstr,sumcnt;
if(paper=="" || sumcnt==""){
query = "select count(*) as num from table where";
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;
}else if((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="【 << "; }
else splitstr="【 << ";
for(i=tract;i<=sub;i++){
if (i!=paper) splitstr.="".i." ";
else splitstr.="".i." ";
}
if (sub!=sumpaper) splitstr.=">> 】";
else splitstr.=">> 】";
return(where);
}
?>
关于分页函数的使用说明
/*
#### 检索分页函数 ####
Int HALT - 检索结果仅分1页时是否(1/0)显示页码条
Int LRLIST - (页码条显示页码数-1)/2
Int ECHOCNT - 检索时每页显示记录的数量
Int paper - 页数,预提取:paper=HTTP_GET_VARS[paper];
Varchar table - 数据表名,预附值:table="db.table";
Varchar where - 检索条件,预附值:where="where field='value'";
Varchar enwhere - 将原where进行两次base64_encode()编码后以GET的方式提交
Varchar splitstr - 页码条输出字串,执行函数后在相应的位置执行 echo splitstr;
函数调用前需获取变量 -
paper=HTTP_GET_VARS[paper];
sumcnt=HTTP_GET_VARS[sumcnt];
enwhere=HTTP_GET_VARS[enwhere];
Return (Varchar where) - 分页后检索语句的检索条件
注意:本函数需调用出错处理函数 nerror(error);
*/
?>
图片文件上传函数
//图片文件上传函数
function upload_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); //恢复缺省超时设置
}
}
?>