php文件操作相关类实例


Posted in PHP onJune 18, 2015

本文实例讲述了php文件操作相关类。分享给大家供大家参考。具体如下:

<?php
 class file_dir
 {
  function check_exist($filename)
  //检查目录或文件是否存在
  {
   if(file_exists($filename))
   {
    return true;
   }
   else return false;
  }
  function create_dir($dirname,$mode=0777)
  // 一次只能创建一级目录
  {
   if(is_null($dirname) || $dirname=="") return false;
   if(!is_dir($dirname))
   {
    return mkdir($dirname,$mode);
   }
  }
  function createDir($aimUrl) //可同时创建多级目录
  {
   $aimUrl = str_replace('\\', '/', $aimUrl);
   $aimDir = '';
   $arr = explode('/', $aimUrl);
   foreach ($arr as $str)
   {
    $aimDir .= $str . '/';
    if (!file_exists($aimDir))
    {
     mkdir($aimDir);
    }
   }
  }
  function delete_dir($dirname) //删除目录
  {
   if($this->check_exist($dirname) and is_dir($dirname))
   {
    if(!$dirhandle=opendir($dirname)) return false;
    while(($file=readdir($dirhandle))!==false)
    {
     if($file=="." or $file=="..") continue;
     $file=$dirname.DIRECTORY_SEPARATOR.$file;
     //表示$file是$dir的子目录
     if(is_dir($file))
     {
      $this->delete_dir($file);
     }
     else
     {
      unlink($file);
     }
    }
    closedir($dirhandle);
    return rmdir($dirname);
   }
   else return false;
  }
  function copy_dir($dirfrom,$dirto) //复制目录
  {
   if(!is_dir($dirfrom)) return false;
   if(!is_dir($dirto))  mkdir($dirto);
   $dirhandle=opendir($dirfrom);
   if($dirhandle)
   {
    while(false!==($file=readdir($dirhandle)))
    {
     if($file=="." or $file=="..") continue;
     $filefrom=$dirfrom.DIRECTORY_SEPARATOR.$file;
     //表示$file是$dir的子目录
     $fileto=$dirto.DIRECTORY_SEPARATOR.$file;
     if(is_dir($filefrom))
     {
      $this->copy_dir($filefrom,$fileto);
     }
     else
     { if(!file_exists($fileto))
      copy($filefrom,$fileto);
     }
    }
   }
   closedir($dirhandle);
  }
  function getdir_size($dirname) //获取目录大小
  {
   if(!file_exists($dirname) or !is_dir($dirname)) return false;
   if(!$handle=opendir($dirname)) return false;
   $size=0;
   while(false!==($file=readdir($handle)))
   {
    if($file=="." or $file=="..") continue;
    $file=$dirname."/".$file;
    if(is_dir($file))
    {
     $size+=$this->getdir_size($file);
    }
    else
    {
     $size+=filesize($file);
    }
   }
   closedir($handle);
   return $size;
  }
  function getReal_size($size) // 单位自动转换函数
  {
   $kb=1024;
   $mb=$kb*1024;
   $gb=$mb*1024;
   $tb=$gb*1024;
   if($size<$kb) return $size."B";
   if($size>=$kb and $size<$mb) return round($size/$kb,2)."KB";
   if($size>=$mb and $size<$gb) return round($size/$mb,2)."MB";
   if($size>=$gb and $size<$tb) return round($size/$gb,2)."GB";
   if($size>=$tb) return round($size/$tb,2)."TB";
  }
  function copy_file($srcfile,$dstfile)
  {
   if(is_file($srcfile))
   {
    if(!file_exists($dstfile))
    return copy($srcfile,$dstfile);
   }
   else return false;
  }
  function unlink_file($filename) //删除文件
  {
   if($this->check_exist($filename) and is_file($filename))
   {
    return unlink($filename);
   }
   else return false;
  }
  function getsuffix($filename)
  //获取文件名后缀
  {
   if(file_exists($filename) and is_file($filename))
   {
    return end(explode(".",$filename));
   }
  }
  function input_content($filename,$str)
  //将字符串写入文件
  {
   if(function_exists(file_put_contents))
   {
    file_put_contents($filename,$str);
   }
   else
   {
    $fp=fopen($filename,"wb");
    fwrite($fp,$str);
    fclose($fp);
   }
  }
  function output_content($filename)
  //将整个文件内容读出到一个字符串中
  {
   if(function_exists(file_get_contents))
   {
    return file_get_contents($filename);
   }
   else
   {
    $fp=fopen($filename,"rb");
    $str=fread($fp,filesize($filename));
    fclose($fp);
    return $str;
   }
  }
  function output_to_array($filename)
  //将文件内容读出到一个数组中
  {
   $file=file($filename);
   $arr=array();
   foreach($file as $value)
   {
    $arr[]=trim($value);
   }
   return $arr;
  }
 }
 //$dir=new file_dir;
 //$size=$dir->getdir_size("F:/wamp/www/class/images");
 //echo $dir->getReal_size($size);
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php 无限级数据JSON格式及JS解析
Jul 17 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
PHP常用数组函数介绍
Jul 28 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
PHP的PDO操作简单示例
Mar 30 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
PHP实现八皇后算法
May 06 PHP
php获取微信openid方法总结
Oct 10 PHP
php身份证号码检查类实例
Jun 18 #PHP
PHP批量生成图片缩略图的方法
Jun 18 #PHP
基于php的CMS中展示文章类实例分析
Jun 18 #PHP
php实现的用户查询类实例
Jun 18 #PHP
php常用表单验证类用法实例
Jun 18 #PHP
php文件压缩之PHPZip类用法实例
Jun 18 #PHP
浅谈php中include文件变量作用域
Jun 18 #PHP
You might like
缓存技术详谈―php
2006/12/14 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
厂长助理岗位职责
2013/12/27 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
JS高级程序设计之class继承重点详解
2022/07/07 Javascript