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 相关文章推荐
模仿OSO的论坛(二)
Oct 09 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
PHP中读写文件实现代码
Oct 20 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP单态模式简单用法示例
Nov 16 PHP
php session的应用详细介绍
Mar 22 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面向对象分析设计的61条军规小结
2010/07/17 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
javascript闭包的理解
2015/04/01 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
Python多线程实现同步的四种方式
2017/05/02 Python
python负载均衡的简单实现方法
2018/02/04 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
基于python实现高速视频传输程序
2019/05/05 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
物业管理个人自我评价
2013/11/08 职场文书
迎接领导欢迎词
2014/01/11 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
个人剖析材料范文
2014/09/30 职场文书
庆七一宣传标语
2014/10/08 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle