PHP常用技巧汇总


Posted in PHP onMarch 04, 2016

本文为大家分享了多个php常用技巧,供大家参考,具体内容如下

1、PHP文件读取函式

//文件读取函式
function PHP_Read($file_name) {
$fd=fopen($file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.=$bufline;
}
fclose($fd);
return $buf;
}
?>

2、文件写入函式

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

3、静态页面生成函式

//静态页面生成函式
function phptohtm($filefrom,$fileto,$u2u=1){
if($u2u==1){
$data=PHP_Read($filefrom);
}else{
$data=$filefrom;
}
PHP_Write($fileto,$data);
return true;
}
?>

4、指定条件信息数量检索函式

//指定条件信息数量检索函式
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;
}
?>

5、目录删除函式

//目录删除函式
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 “;
}
?>

6、目录名称合法性检测函式

//目录名称合法性检测
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;
}
?>

7、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关于分页函式的使用说明 
8、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); //恢复缺省超时设置
}
}

以下是一些小技巧: 
1、 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”;
?>
—-

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、批量替换文本里面的超级链接

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

PHP 相关文章推荐
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
一个完整的PHP类包含的七种语法说明
Jun 04 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
PHP使用两个栈实现队列功能的方法
Jan 15 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 #PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 #PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 #PHP
CodeIgniter表单验证方法实例详解
Mar 03 #PHP
PHP6新特性分析
Mar 03 #PHP
php轻松实现文件上传功能
Mar 03 #PHP
php编程每天必学之验证码
Mar 03 #PHP
You might like
php 文件上传类代码
2011/08/06 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
javascript读取RSS数据
2007/01/20 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
js判断节假日实例代码
2017/12/27 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
python和pyqt实现360的CLable控件
2014/02/21 Python
python根据日期返回星期几的方法
2015/07/06 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
程序员经常用到的UNIX命令
2015/04/13 面试题
校园创业策划书
2014/01/14 职场文书
采购经理岗位职责
2014/02/16 职场文书
学习型班组申报材料
2014/05/31 职场文书
大学生自荐信范文
2015/03/05 职场文书
《风筝》教学反思
2016/02/23 职场文书
如何用python绘制雷达图
2021/04/24 Python
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers