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 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
mysql5写入和读出乱码解决
Nov 25 PHP
《PHP边学边教》(01.开篇――准备工作)
Dec 13 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
最常用的8款PHP调试工具
Jul 06 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 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之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
canvas的神奇用法
2017/02/03 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
keras 多任务多loss实例
2020/06/22 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
售房委托书
2014/08/30 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
运动会5000米加油稿
2015/07/21 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
Node.js实现断点续传
2021/06/23 Javascript
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL
关于MySQL中explain工具的使用
2023/05/08 MySQL