php创建多级目录完整封装类操作方法
创建多级目录函数中调用创建指定下的指定文件的函数:
publicfunctioncreate_dir($dir,$mode=0777)
{
returnis_dir($dir)or($this->create_dir(dirname($dir))andmkdir($dir,$mode));
}
创建指定路径下的指定文件,string需要包含文件名和后缀path(需要包含文件名和后缀),booleanover_write是否覆盖文件,int设置时间。默认是当前系统时间time设置时间。默认是当前系统时间,intatime设置访问时间。默认是当前系统时间。函数如下中调用了create_dir创建目录函数及删除unlink_file函数:
publicfunctioncreate_file($path,$over_write=FALSE,$time=NULL,$atime=NULL)
{
$path=$this->dir_replace($path);
$time=empty($time)?time():$time;
$atime=empty($atime)?time():$atime;
if(file_exists($path)&&$over_write)
{
$this->unlink_file($path);
}
$aimDir=dirname($path);
$this->create_dir($aimDir);
returntouch($path,$time,$atime);
}
删除非空目录函数,说明:只能删除非系统和特定权限的文件,否则会出现错误,string目录路径dirName目录路径,booleanis_all是否删除所有,boolean$del_dir是否删除目录,函数如下:
publicfunctionremove_dir($dir_path,$is_all=FALSE)
{
$dirName=$this->dir_replace($dir_path);
$handle=@opendir($dirName);
while(($file=@readdir($handle))!==FALSE)
{
if($file!='.'&&$file!='..')
{
$dir=$dirName.'/'.$file;
if($is_all)
{
is_dir($dir)?$this->remove_dir($dir):$this->unlink_file($dir);
}
else
{
if(is_file($dir))
{
$this->unlink_file($dir);
}
}
}
}
closedir($handle);
return@rmdir($dirName);
}
替换路径中//的字符相应的字符函数:
publicfunctiondir_replace($path)
{
returnstr_replace('//','/',str_replace('\\','/',$path));
}
/**
*指定文件编码转换
*@paramstring$path文件路径
*@paramstring$input_code原始编码
*@paramstring$out_code输出编码
*@returnboolean
*/
publicfunctionchange_file_code($path,$input_code,$out_code)
{
if(is_file($path))//检查文件是否存在,如果存在就执行转码,返回真
{
$content=file_get_contents($path);
$content=string::chang_code($content,$input_code,$out_code);
$fp=fopen($path,'w');
returnfputs($fp,$content)?TRUE:FALSE;
fclose($fp);
}
}
/**
*取得上传文件信息
*@param$filefile属性信息
*@returnarray
*/
publicfunctionget_upload_file_info($file)
{
$file_info=$_FILES[$file];//取得上传文件基本信息
$info=array();
$info['type']=strtolower(trim(stripslashes(preg_replace("/^(.+?);.*$/","\\1",$file_info['type'])),'"'));//取得文件类型
$info['temp']=$file_info['tmp_name'];//取得上传文件在服务器中临时保存目录
$info['size']=$file_info['size'];//取得上传文件大小
$info['error']=$file_info['error'];//取得文件上传错误
$info['name']=$file_info['name'];//取得上传文件名
$info['ext']=$this->get_ext($file_info['name']);//取得上传文件后缀
return$info;
}
/**
*取得文件路径信息
*@param$full_path完整路径
*@returnArrayObject
*/
publicfunctionget_file_type($path)
{
//pathinfo()函数以数组的形式返回文件路径的信息。
//---------$file_info=pathinfo($path);echofile_info['extension'];----------//
//extension取得文件后缀名【pathinfo($path,PATHINFO_EXTENSION)】-----dirname取得文件路径【pathinfo($path,PATHINFO_DIRNAME)】-----basename取得文件完整文件名【pathinfo($path,PATHINFO_BASENAME)】-----filename取得文件名【pathinfo($path,PATHINFO_FILENAME)】
returnpathinfo($path);
}
/**
*返回指定文件和目录的信息
*@paramstring$file
*@returnArrayObject
*/
publicfunctionlist_info($file)
{
$dir=array();
$dir['filename']=basename($file);//返回路径中的文件名部分。
$dir['pathname']=realpath($file);//返回绝对路径名。
$dir['owner']=fileowner($file);//文件的userID(所有者)。
$dir['perms']=fileperms($file);//返回文件的inode编号。
$dir['inode']=fileinode($file);//返回文件的inode编号。
$dir['group']=filegroup($file);//返回文件的组ID。
$dir['path']=dirname($file);//返回路径中的目录名称部分。
$dir['atime']=fileatime($file);//返回文件的上次访问时间。
$dir['ctime']=filectime($file);//返回文件的上次改变时间。
$dir['perms']=fileperms($file);//返回文件的权限。
$dir['size']=filesize($file);//返回文件大小。
$dir['type']=filetype($file);//返回文件类型。
$dir['ext']=is_file($file)?pathinfo($file,PATHINFO_EXTENSION):'';//返回文件后缀名
$dir['mtime']=filemtime($file);//返回文件的上次修改时间。
$dir['isDir']=is_dir($file);//判断指定的文件名是否是一个目录。
$dir['isFile']=is_file($file);//判断指定文件是否为常规的文件。
$dir['isLink']=is_link($file);//判断指定的文件是否是连接。
$dir['isReadable']=is_readable($file);//判断文件是否可读。
$dir['isWritable']=is_writable($file);//判断文件是否可写。
$dir['isUpload']=is_uploaded_file($file);//判断文件是否是通过HTTPPOST上传的。
return$dir;
}
以上这篇php创建多级目录完整封装类操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。