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

发布时间 - 2026-01-11 02:52:47    点击率:

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

 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创建多级目录完整封装类操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# php  # 创建多级目录  # PHP创建多级目录的两种方法  # PHP递归创建多级目录  # php创建多级目录的方法  # PHP使用mkdir创建多级目录的方法  # php删除一个路径下的所有文件夹和文件的方法  # PHP删除目录及目录下所有文件的方法详解  # PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用  # PHP创建/删除/复制文件夹、文件  # PHP删除指定目录中的所有目录及文件的方法  # php删除文件夹及其文件夹下所有文件的函数代码  # php创建多级目录与级联删除文件的方法示例  # 上传文件  # 给大家  # 上传  # 是一个  # 希望能  # 这篇  # 则会  # 小编  # 大家多多  # 是否存在  # 操作方法  # 出现错误  # 文件上传  # 器中  # opendir  # handle  # remove_dir  # readdir  # file  # is_all 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel storage目录权限问题_Laravel文件写入权限设置  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何在万网自助建站中设置域名及备案?  Laravel如何记录自定义日志?(Log频道配置)  利用 Google AI 进行 YouTube 视频 SEO 描述优化  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何用IIS7快速搭建并优化网站站点?  Laravel如何实现API资源集合?(Resource Collection教程)  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何在自有机房高效搭建专业网站?  实例解析Array和String方法  如何在Ubuntu系统下快速搭建WordPress个人网站?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  如何为不同团队 ID 动态生成多个“认领值班”按钮  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何为不同团队 ID 动态生成多个非值班状态按钮  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  浅谈redis在项目中的应用  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  使用spring连接及操作mongodb3.0实例  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  制作旅游网站html,怎样注册旅游网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在IIS管理器中快速创建并配置网站?  如何用VPS主机快速搭建个人网站?  网站建设保证美观性,需要考虑的几点问题!  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  详解阿里云nginx服务器多站点的配置  Laravel如何实现API速率限制?(Rate Limiting教程)  进行网站优化必须要坚持的四大原则  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel如何处理CORS跨域请求?(配置示例)  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项