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实现的获取URL信息的类
Jan 02 PHP
php Ajax乱码
Apr 09 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
php使用curl访问https示例分享
Jan 17 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
php文件缓存类汇总
Nov 21 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
PHP中文编码小技巧
Dec 25 PHP
PHP异常处理Exception类
Dec 11 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php画图实例
2014/11/05 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
python中管道用法入门实例
2015/06/04 Python
编写Python CGI脚本的教程
2015/06/29 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
使用python模拟命令行终端的示例
2019/08/13 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
如何基于python操作excel并获取内容
2019/12/24 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
Python爬虫开发与项目实战
2020/12/16 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
工作违纪检讨书
2014/02/17 职场文书
毕业设计致谢语
2015/05/14 职场文书
母亲节感言
2015/08/03 职场文书
新党员入党决心书
2015/09/22 职场文书
党员干部学习心得体会
2016/01/23 职场文书