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 header()函数使用说明
Jul 10 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
PHP之autoload运行机制实例分析
Aug 28 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
PHP排序算法类实例
Jun 17 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
PHP设计模式之工厂模式详解
Oct 24 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结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
js转html实体的方法
2016/09/27 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
python中import reload __import__的区别详解
2017/10/16 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
python实现xlsx文件分析详解
2018/01/02 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
七年级生物教学反思
2014/01/30 职场文书
C++程序员求职信范文
2014/04/14 职场文书
庆国庆活动总结
2014/08/28 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
小学班主任研修日志
2015/11/13 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫