php创建多级目录完整封装类操作方法

创建多级目录函数中调用创建指定下的指定文件的函数:

 public function create_dir($dir,$mode=0777)
  {
    return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode));
  }

创建指定路径下的指定文件,string 需要包含文件名和后缀path(需要包含文件名和后缀),booleanover_write 是否覆盖文件,int 设置时间。默认是当前系统时间time设置时间。默认是当前系统时间,intatime 设置访问时间。默认是当前系统时间。函数如下中调用了create_dir创建目录函数及删除unlink_file函数:

public function create_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);
    return touch($path,$time,$atime);
  }

删除非空目录函数,说明:只能删除非系统和特定权限的文件,否则会出现错误,string目录路径dirName目录路径,booleanis_all是否删除所有,boolean $del_dir 是否删除目录,函数如下:

public function remove_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);
  }

替换路径中//的字符相应的字符函数:

public function dir_replace($path)
  {
    return str_replace('//','/',str_replace('\\','/',$path));
  }
/**
   * 指定文件编码转换
   * @param string $path 文件路径
   * @param string $input_code 原始编码
   * @param string $out_code 输出编码
   * @return boolean
   */
  public function change_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');
      return fputs($fp,$content) ? TRUE : FALSE;
      fclose($fp);
    }
  }

/**
* 取得上传文件信息
* @param $file file属性信息
* @return array
*/

public function get_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 完整路径
* @return ArrayObject
*/

public function get_file_type($path)
  {
    //pathinfo() 函数以数组的形式返回文件路径的信息。
    //---------$file_info = pathinfo($path); echo file_info['extension'];----------//
    //extension取得文件后缀名【pathinfo($path,PATHINFO_EXTENSION)】-----dirname取得文件路径【pathinfo($path,PATHINFO_DIRNAME)】-----basename取得文件完整文件名【pathinfo($path,PATHINFO_BASENAME)】-----filename取得文件名【pathinfo($path,PATHINFO_FILENAME)】
    return pathinfo($path);
  }

/**
* 返回指定文件和目录的信息
* @param string $file
* @return ArrayObject
*/

public function list_info($file)
  {
    $dir = array();
    $dir['filename']  = basename($file);//返回路径中的文件名部分。
    $dir['pathname']  = realpath($file);//返回绝对路径名。
    $dir['owner']   = fileowner($file);//文件的 user ID (所有者)。
    $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);//判断文件是否是通过 HTTP POST 上传的。
    return $dir;
  }

以上这篇php创建多级目录完整封装类操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • php创建多级目录的方法

    本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: <?php /* 写出一个能创建多级目录的PHP函数 */ function createdirlist($path,$mode){ if (is_dir($path)){ //判断目录存在否,存在不创建 echo "目录'" . $path . "'已经存在"; //已经存在则输入路径 }else{ //不存在则创建目录 $re=mkdir($path,$mode,true);

  • php循环创建目录示例分享(php创建多级目录)

    复制代码 代码如下: function mk_dir($dir, $mod = 0777){ if(!is_dir($dir) || mkdir($dir, $mod)) { if(!mk_dir(dirname($dir, $mod))) { return false; } } return mkdir($dir, $mod);} 原理:就是不断的尝试创建上层目录,依此类推

  • PHP创建多级目录的两种方法

    PHP针对目录的创建,有一个专门的函数mkdir():成功,返回true,失败,返回false 函数mkdir有四个参数: path:要创建的目录的名称 mode:权限.默认是0777(最大权限) recursive:设置是否可以创建多级目录(true:可,false:不可) context:文件句柄的环境.context是可修改流的行为的一套选项(很少用到) 下面给大家介绍php创建多级目录的两种方法,具体详情如下所示: 1.使用递归的思想 function mkdirs_2($path){

  • php创建多级目录代码

    function createFolder($path) {    if (!file_exists($path))    {     createFolder(dirname($path)); mkdir($path, 0777);    } } createFolder("2007/3/4");//在当前目录下创建2007/3/4的目录结构.

  • php创建多级目录完整封装类操作方法

    创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777) { return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode)); } 创建指定路径下的指定文件,string 需要包含文件名和后缀path(需要包含文件名和后缀),booleanover_write 是否覆盖文件,int 设置时间.默认是当前系统时间time

  • PHP使用mkdir创建多级目录的方法

    本文实例讲述了PHP使用mkdir创建多级目录的方法.分享给大家供大家参考,具体如下: PHP中使用mkdir()可以创建多级目录,相比之前自己一级一级的创建,这个函数非常好用. 下面是php手册上的函数介绍: 复制代码 代码如下: bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] ) 返回值为bool类型. 第一个参数:必须,代表要创建的多级

  • php使用mkdir创建多级目录入门例子

    先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径:第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权:第三个参数:true表示允许创建多级目录. 举例代码(支持创建中文目录): <?php header("Content-type:text/html;charset=utf-8"); //要创建的多级目录 $path="dai/php/php学习"; //判断

  • python实现一次创建多级目录的方法

    本文实例讲述了python实现一次创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: import os os.makedirs( "/home/jb51/data" ) 这样就可以创建一个三级目录. 希望本文所述对大家的Python程序设计有所帮助.

  • 一个可以自动创建多级目录的函数

    <% '创建多级目录,可以创建不存在的根目录 '参数:要创建的目录名称,可以是多级 '返回逻辑值,True成功,False失败 '创建目录的根目录从当前目录开始 '--------------------------------------------------- Function CreateMultiFolder(ByVal CFolder)     Dim objFSO, PhCreateFolder, CreateFolderArray, CreateFolder     Dim i,

  • asp中创建多级目录的两段代码

    复制代码 代码如下: '==============================         '创建多级目录,可以创建不存在的根目录         '参数:要创建的目录名称,可以是多级         '创建目录的根目录从当前目录开始         '''调用举例         ''Call CreateMultiFolder("/upload/jumbot/myphoto/")         '============================== Functi

  • 详解C++循环创建多级目录及判断目录是否存在的方法

    C++循环创建多级目录 #include "unitfiles.h" #ifdef WIN32 #include <direct.h> #include <io.h> #elif LINUX #include <stdarg.h> #include <sys/stat.h> #endif #ifdef WIN32 #define ACCESS _access #define MKDIR(a) _mkdir((a)) #elif LINUX

  • PHP递归创建多级目录

    我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个"父目录不存在"的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); //当子目录没创建成功时,试图创建父目

随机推荐