PHP常用技巧汇总
本文为大家分享了多个php常用技巧,供大家参考,具体内容如下
1、PHP文件读取函式
//文件读取函式 functionPHP_Read($file_name){ $fd=fopen($file_name,r); while($bufline=fgets($fd,4096)){ $buf.=$bufline; } fclose($fd); return$buf; } ?>
2、文件写入函式
//文件写入函式 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; } ?>
3、静态页面生成函式
//静态页面生成函式 functionphptohtm($filefrom,$fileto,$u2u=1){ if($u2u==1){ $data=PHP_Read($filefrom); }else{ $data=$filefrom; } PHP_Write($fileto,$data); returntrue; } ?>
4、指定条件信息数量检索函式
//指定条件信息数量检索函式 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; } ?>
5、目录删除函式
//目录删除函式 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“; } ?>
6、目录名称合法性检测函式
//目录名称合法性检测 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; } ?>
7、PHP分页函数
//分页函数 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(($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=”【<<“;} else$splitstr=”【<<“; for($i=$tract;$i<=$sub;$i++){ if($i!=$paper)$splitstr.=”".$i.”“; else$splitstr.=”".$i.”“; } if($sub!=$sumpaper)$splitstr.=”>>】”; else$splitstr.=”>>】”; return($where); } ?>
PHP关于分页函式的使用说明
8、PHP图片文件上传函式
//图片文件上传函式 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);//恢复缺省超时设置 } }
以下是一些小技巧:
1、 PHP如何判断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”; ?> —-
2、PHP文件下载头部输出如何设定
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'
3、PHP用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”);
4、PHP正则匹配中文
ereg(“^[".chr(0xa1)."-".chr(0xff)."]+$”,$str);
5、批量替换文本里面的超级链接
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; }
以上就是本文的全部内容,很常用的php技巧送给大家,希望大家喜欢。
下面是为大家分享的专题内容,内容很全面,查看《php常用技巧汇总》。