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输出控制功能在简繁体转换中的应用
Oct 09 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
PHP工程师VIM配置分享
Dec 15 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
php实现微信支付之企业付款
May 30 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抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
php事件驱动化设计详解
2016/11/10 PHP
php输出形式实例整理
2020/05/05 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
python线性插值解析
2020/07/05 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
银行办理业务介绍信
2014/01/18 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
社区元宵节活动总结
2015/02/06 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers