侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

php  /  管理员 发布于 7年前   175

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

 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使用mkdir创建多级目录的方法
  • php删除一个路径下的所有文件夹和文件的方法
  • PHP删除目录及目录下所有文件的方法详解
  • PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
  • PHP创建/删除/复制文件夹、文件
  • PHP删除指定目录中的所有目录及文件的方法
  • php删除文件夹及其文件夹下所有文件的函数代码
  • php创建多级目录与级联删除文件的方法示例


  • 上一条:
    详谈PHP基础与JS操作的区别(必看篇)
    下一条:
    PHPMailer使用QQ邮箱实现邮件发送功能
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客