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类
Nov 25 PHP
SMARTY学习手记
Jan 04 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
PHP单例模式详细介绍
Jul 01 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
详解如何使用Python编写vim插件
2017/11/28 Python
Django 连接sql server数据库的方法
2018/06/30 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Django的Modelforms用法简介
2019/07/27 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python 生成器需注意的小问题
2020/09/29 Python
RealTek面试题
2016/06/28 面试题
公司拓展活动方案
2014/02/13 职场文书
领导干部作风建设总结
2014/10/23 职场文书
保密工作整改报告
2014/11/06 职场文书
优秀党员事迹材料
2014/12/18 职场文书
公司租车协议书
2015/01/29 职场文书
辅导员学期工作总结
2015/08/14 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
关于python类SortedList详解
2021/09/04 Python
Java 多线程并发FutureTask
2022/06/28 Java/Android