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 相关文章推荐
一个好用的分页函数
Nov 16 PHP
PHP分页显示制作详细讲解
Dec 05 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
PHP中JSON的应用技巧
Oct 10 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
php-fpm添加service服务的例子
Apr 27 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
php日期操作技巧小结
2016/06/25 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
动态加载js的几种方法
2006/10/23 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
深入浅析Python的类
2018/06/22 Python
将python图片转为二进制文本的实例
2019/01/24 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
django admin 添加自定义链接方式
2020/03/11 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
python 基于opencv去除图片阴影
2021/01/26 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
土木工程专业自荐信
2013/10/04 职场文书
药品促销活动方案
2014/02/14 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
幼儿园招生广告
2014/03/19 职场文书
家长会开场白和结束语
2015/05/29 职场文书
四群教育工作总结
2015/08/10 职场文书
大学生党课感想
2015/08/11 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
Python创建SQL数据库流程逐步讲解
2022/09/23 Python