文件读取函式
//文件读取函式
functionPHP_Read($file_name){
$fd=fopen($file_name,r);
while($bufline=fgets($fd,4096)){
$buf.=$bufline;
}
fclose($fd);
return$buf;
}
?>
文件写入函式
//文件写入函式
functionPHP_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;
}
?>
静态页面生成函式
//静态页面生成函式
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()asnumfrom$table".$where;
$result=mysql_query($query)ordie(nerror(1));
$rowcount=mysql_fetch_array($result);
$num=$rowcount["num"];
if($num==0){
returnfalse;
}
return$num;
}
?>
目录删除函式
//目录删除函式
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"unlink$directory/$fileok";
}
}
}
$mydir->close();
rmdir($directory);
//echo"rmdir$directoryok";
}
?>
目录名称合法性检测函式
//目录名称合法性检测
functionisen($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;
}
?>
分页函式
//分页函式
functionsplitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
global$splitstr,$sumcnt;
if($paper==""||$sumcnt==""){
$query="selectcount()asnumfrom$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(($LRLIST2+1)<$sumpaper){
if(($paper-$LRLIST)<2){
$tract=1;
$sub=$LRLIST2+1;
}elseif(($paper+$LRLIST)>=$sumpaper){
$tract=$sumpaper-($LRLIST2);
$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="wherefield=''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);
/
图片文件上传函式
//图片文件上传函式
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"/(10241024)),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);//恢复缺省超时设置
}
}
以下是一些小技巧:
如何判断ip地址合法性
if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip))echo"isipn";
----
email的正则判断
eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$",$email);
检测ip地址和mask是否合法的例子
$ip=''192.168.0.84'';
$mask=''255.255.255.0'';
$network=''192.168.0'';
$ip=ip2long($ip);
$mask=ip2long($mask);
$network=ip2long($network);
if(($ip&$mask)==$network)echo"validipandmaskn";
?>
----
文件下载头部输出如何设定
header("Content-type:application/x-download");
header("Content-Disposition:attachment;filename=$file_download_name;");
header("Accept-Ranges:bytes");
header("Content-Length:$download_size");
echo''xxx''
用header输出ftp下载方式,并且支持断点续传
一个例子:
header(''Pragma:public'');
header(''Cache-Control:private'');
header(''Cache-Control:no-cache,must-revalidate'');
header(''Accept-Ranges:bytes'');
header(''Connection:close'');
header("Content-Type:audio/mpeg");
header("Location:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web技术开发知识库/cn_web.rmvb");
正则匹配中文
ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str);
批量替换文本里面的超级链接
functionurlParse($str=''''){
if(''''==$str)return$str;
$types=array("http","ftp","https");
$replace=<<
''''.htmlentities(''\1'').htmlentities(''\2'').''''
EOPHP;
$ret=$str;
while(list(,$type)=each($types)){
$ret=preg_replace("|($type://)([^\s])|ie",$replace,$ret);
}
return$ret;
}
详细出处参考:http://www.jb51.net/article/17017.htm
|
|