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常用技巧汇总》。