php几个常用类
文件操作类:
<?php
/* php同盟会
*[url=http://www.dophp.net/][color=#000000]http://www.dophp.net/[/color][/url]
*/
/*
*@说明:目录和文件操作类
*@类名" />irs
*@方法:mkDirs($dir),创建多重目录
*@方法:rmDirs($dir,$rmself=true),删除及清空目录
*@方法:delFile($file),删除文件
*@方法:createFile($file,$c,$mode="w"),创建文件
*@方法:getFolders($dir),获取目录下的文件夹信息
*@方法:getFiles($dir),获取目录下的文件信息
*@方法:getFileSize($file)获取文件的大小
*@属性" />mFolders,遍历目录下的文件夹信息的数组
*@属性" />mFiles,遍历目录下的文件信息的数组
*/
class Dirs {
// 遍历的目录数组
var $mFolders = Array();
// 遍历的文件数组
var $mFiles = Array();
var $mDateTime = "Y-m-d H-i-s";
var $mTimeOffset = 8;
/*
*@创建多重目录
*@mkDirs($dir)
*@参数$dir:目录的绝对路径
*@所创建的目录的权限全部为0777
*@创建失败有提示,成功无返回
*/
function mkDirs ($dir) {
$dir = str_replace("","/",$dir);
$dirs = explode('/', $dir);
$total = count($dirs);
$temp = '';
for($i=0; $i<$total; $i++) {
$temp .= $dirs[$i].'/';
if (!is_dir($temp)) {
if (!@mkdir($temp)) exit("不能建立目录 $temp");
// 改变目录权限 为0777
@chmod($temp, 0777);
}
}
}
/*
*@删除多重目录及文件
*@清空目录下的所有子目录及文件
*@rmDirs($dir, $rmself)
*@参数$dir:目录的绝对路径
*@参数$rmself:如果$rmself=false,则不删除本目录,否则删除本目录,默认$rmself=true
*@删除成功返回true,否则返回false
*/
function rmDirs ($dir, $rmself = true) {
//如果给定路径末尾包含"/",先将其删除
if(substr($dir,-1)=="/"){
$dir=substr($dir,0,-1);
}
//如给出的目录不存在或者不是一个有效的目录,则返回
if(!file_exists($dir)||!is_dir($dir)){
return false;
//如果目录不可读,则返回
} elseif(!is_readable($dir)){
return false;
} else {
//打开目录,
$dirs= opendir($dir);
//当目录不空时,删除目录里的文件
while (false!==($entry=readdir($dirs))) {
//过滤掉表示当前目录的"."和表示父目录的".."
if ($entry!="."&&$entry!="..") {
$path=$dir."/".$entry;
//为子目录,则递归调用本函数
if(is_dir($path)){
$this->rmDirs($path);
//为文件直接删除
} else {
unlink($path);
}
}
}
//关闭目录
closedir($dirs);
//当$rmself==false时,只清空目录里的文件及目录,$rmself=true时,也删除$dir目录
if($rmself){
//删除目录
if(!rmdir($dir)){
return false;
}
return true;
}
}
}
/*
*@删除文件
*@删除失败返回false,否则返回true
*/
function delFile ($file) {
if ( !is_file($file) ) return false;
@unlink($file);
return true;
}
/*
*@创建文件
*@方法:createFile ($file, $content, $mode);
*@参数$file:文件的绝对路径
*@参数$content:创建文件时添加入文件的内容
*@参数$mode" />mode=w时,内容清空后添加进入,$mode=a,内容添加在已有内容的尾部,默认为w
*@创建失败返回false,否则返回true
*/
function createFile ($file, $c, $mode="w") {
if ( in_array($mode, array("w", "a")) ) $mode = "w";
if ( !$hd = fopen($file, $mode) ) return false;
if ( !false === fwrite($hd, $content) ) return false;
return true;
}
/*
*@浏览目录
*/
function getFolders ($dir) {
$this->mFolders = Array();
//如果给定路径末尾包含"/",先将其删除
if(substr($dir,-1)=="/"){
$dir=substr($dir,0,-1);
}
//如给出的目录不存在或者不是一个有效的目录,则返回
if(!file_exists($dir)||!is_dir($dir)){
return false;
}
//打开目录,
$dirs= opendir($dir);
//把目录下的目录信息写入数组
$i = 0;
while (false!==($entry=readdir($dirs))) {
//过滤掉表示当前目录的"."和表示父目录的".."
if ($entry!="."&&$entry!="..") {
$path=$dir."/".$entry;
//为子目录,则采集信息
if(is_dir($path)){
$filetime = @filemtime($path);
$filetime = @date($this->mDateTime, $filetime+3600*$this->mTimeOffset);
// 目录名
$this->mFolders[$i]['name'] = $entry;
// 目录最后修改时间
$this->mFolders[$i]['filetime'] = $filetime;
// 目录大小,不计,设为0
$this->mFolders[$i]['filesize'] = 0;
$i++;
}
}
}
return $this->mFolders;
}
/*
*@浏览文件
*/
function getFiles ($dir) {
$this->mFiles = Array();
//如果给定路径末尾包含"/",先将其删除
if(substr($dir,-1)=="/"){
$dir=substr($dir,0,-1);
}
//如给出的目录不存在或者不是一个有效的目录,则返回
if(!file_exists($dir)||!is_dir($dir)){
return false;
}
//打开目录,
$dirs= opendir($dir);
//把目录下的文件信息写入数组
$i = 0;
while (false!==($entry=readdir($dirs))) {
//过滤掉表示当前目录的"."和表示父目录的".."
if ($entry!="."&&$entry!="..") {
$path=$dir."/".$entry;
//为子目录,则采集信息
if(is_file($path)){
$filetime = @filemtime($path);
$filetime = @date($this->mDateTime, $filetime+3600*$this->mTimeOffset);
$filesize = $this->getFileSize($path);
// 文件名
$this->mFiles[$i]['name'] = $entry;
// 文件最后修改时间
$this->mFiles[$i]['filetime'] = $filetime;
// 文件的大小
$this->mFiles[$i]['filesize'] = $filesize;
$i++;
}
}
}
return $this->mFiles;
}
/*
*@获取文件的大小:字节,KB,MB,GB
*/
function getFileSize ($file) {
if ( !is_file($file) ) return 0;
$f1 = $f2 = "";
$filesize = @filesize("$file");
// 大于1GB以上的文件
if ( $filesize > 1073741824 ) {
// 大于1MB以上的文件
} elseif ( $filesize > 1048576 ) {
$filesize = $filesize / 1048576;
list($f1, $f2) = explode(".",$filesize);
$filesize = $f1.".".substr($f2, 0, 2)."MB";
// 大于1KB小于1MB的文件
} elseif ( $filesize > 1024 ) {
$filesize = $filesize / 1024;
list($f1, $f2) = explode(".",$filesize);
$filesize = $f1.".".substr($f2, 0, 2)."KB";
// 小于1KB的文件
} else {
$filesize = $filesize."字节";
}
return $filesize;
}
}
<?php
class class_post
{
//验证是否为指定长度的字母/数字组合
function fun_text1($num1,$num2,$str)
{
Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;
}
//验证是否为指定长度数字
function fun_text2($num1,$num2,$str)
{
return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;
}
//验证是否为指定长度汉字
function fun_font($num1,$num2,$str)
{
// preg_match("/^[xa0-xff]{1,4}$/", $string);
return (preg_match("/^([x81-xfe][x40-xfe]){".$num1.",".$num2."}$/",$str))?true:false;
}
//验证身份证号码
function fun_status($str)
{
return (preg_match('/(^([d]{15}|[d]{18}|[d]{17}x)$)/',$str))?true:false;
}
//验证邮件地址
function fun_email($str){
return (preg_match('/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false;
}
//验证电话号码
function fun_phone($str)
{
return (preg_match("/^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$/",$str))?true:false;
}
//验证邮编
function fun_zip($str)
{
return (preg_match("/^[1-9]d{5}$/",$str))?true:false;
}
//验证url地址
function fun_url($str)
{
return (preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/",$str))?true:false;
}
// 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组
function data_join(&$data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as $k => $v)
{
$data[$k] = addslashes($v);
}
}
else
{
$data = addslashes($data);
}
}
Return $data; return (preg_match("/^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$/",$str))?true:false;
}
//验证邮编
function fun_zip($str)
{
return (preg_match("/^[1-9]d{5}$/",$str))?true:false;
}
//验证url地址
function fun_url($str)
{
return (preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/",$str))?true:false;
}
// 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组
function data_join(&$data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as $k => $v)
{
$data[$k] = addslashes($v);
}
}
else
{
$data = addslashes($data);
}
}
Return $data;
}
// 数据出库 还原 特殊字符 传入值可为字符串 或 一/二维数组
function data_revert(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2] = stripslashes($v2);
}
}
else
{
$data[$k1] = stripslashes($v1);
}
}
}
else
{
$data = stripslashes($data);
}
Return $data;
}
// 执行此方法前应先data_revert(),表单内容无须此还原
function data_show(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2]));
$data[$k1][$k2]=str_replace(" "," ",$data[$k1][$k2]);
$data[$k1][$k2]=str_replace(" ","<br> ",$data[$k1][$k2]);
}
}
else
{
$data[$k1]=nl2br(htmlspecialchars($data[$k1]));
$data[$k1]=str_replace(" "," ",$data[$k1]);
$data[$k1]=str_replace(" ","<br> ",$data[$k1]);
}
}
}
else
{
$data=nl2br(htmlspecialchars($data));
$data=str_replace(" "," ",$data);
$data=str_replace(" ","<br> ",$data);
}
Return $data;
}
}
?> if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2]));
$data[$k1][$k2]=str_replace(" "," ",$data[$k1][$k2]);
$data[$k1][$k2]=str_replace(" ","<br> ",$data[$k1][$k2]);
}
}
else
{
$data[$k1]=nl2br(htmlspecialchars($data[$k1]));
$data[$k1]=str_replace(" "," ",$data[$k1]);
$data[$k1]=str_replace(" ","<br> ",$data[$k1]);
}
}
}
else
{
$data=nl2br(htmlspecialchars($data));
$data=str_replace(" "," ",$data);
$data=str_replace(" ","<br> ",$data);
}
Return $data;
}
}
?>