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 相关文章推荐
mysql5写入和读出乱码解决
Nov 25 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
php读取html并截取字符串的简单代码
Nov 30 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
Look And Say 序列php实现代码
May 22 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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程序效率优化的一些策略小结
2010/07/17 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
python避免死锁方法实例分析
2015/06/04 Python
Python创建xml文件示例
2017/03/22 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python操作qml对象过程详解
2019/09/26 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
大学生毕业评语
2014/12/31 职场文书
实验室安全管理制度
2015/08/05 职场文书
2016年情人节广告语
2016/01/28 职场文书