PHP常用技巧总结(附函数代码)


Posted in PHP onFebruary 04, 2012

PHP文件读取函式

//文件读取函式 
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; 
} 
?>

PHP分页函数
//分页函数 
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); 
} 
?>

PHP关于分页函式的使用说明
/* 
#### 检索分页函式 #### 
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); 
*/ 
PHP图片文件上传函式 
//图片文件上传函式 
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); //恢复缺省超时设置 
} 
}

以下是一些小技巧:

PHP如何判断ip地址合法性
if(!strcmp(long2ip(sprintf(“%u”,ip2long($ip))),$ip)) echo “is ipn”;
—-
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 “valid ip and maskn”;
?>
—-
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'
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”);
PHP正则匹配中文
ereg(“^[".chr(0xa1)."-".chr(0xff)."]+$”, $str);
批量替换文本里面的超级链接
function urlParse($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中__get()和__set()的用法实例详解
Jun 04 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 PHP
PHP eval函数使用介绍
Dec 08 PHP
php生成excel列序号代码实例
Dec 24 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
YII中assets的使用示例
Jul 31 PHP
PHP实现视频文件上传完整实例
Aug 28 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 #PHP
php中global和$GLOBALS[]的分析之一
Feb 02 #PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 #PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 #PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 #PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 #PHP
php代码收集表单内容并写入文件的代码
Jan 29 #PHP
You might like
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
node实现分片下载的示例代码
2018/10/17 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
jQuery实现本地存储
2020/12/22 jQuery
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python守护进程用法实例分析
2015/06/04 Python
python中import学习备忘笔记
2017/01/24 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
巴西购物网站:Submarino
2020/01/19 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
数据库的约束含义
2012/09/09 面试题
互联网创业计划书的书写步骤
2014/01/28 职场文书
《秋游》教学反思
2014/04/24 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
2015年中秋寄语
2015/07/31 职场文书
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle