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+MSSQL分页的例子
Oct 09 PHP
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
PHP 采集心得技巧
May 15 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
PHP Directory 函数的详解
Mar 07 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
Jul 01 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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/11/25 PHP
php实现监听事件
2013/11/06 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python实现与redis交互操作详解
2020/04/21 Python
python元组拆包实现方法
2021/02/28 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
会计系个人求职信范文分享
2013/12/20 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
晚会开场白和结束语
2015/05/29 职场文书
学雷锋感言
2015/08/03 职场文书
服务器间如何实现文件共享
2022/05/20 Servers