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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
MySql中正则表达式的使用方法描述
Jul 30 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
PHP取进制余数函数代码
Jan 19 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 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字符串过滤,转换函数代码
2012/05/01 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
js编写选项卡效果
2017/05/23 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
详解AngularJS ng-class样式切换
2017/06/27 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
详解Node.JS模块 process
2020/08/31 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
python返回昨天日期的方法
2015/05/13 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Python如何急速下载第三方库详解
2020/11/02 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
如何提高MySql的安全性
2014/06/19 面试题
农村党支部先进事迹
2014/01/14 职场文书
兴趣小组活动总结
2014/05/05 职场文书
班风口号
2014/06/18 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电