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 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
Yii框架模拟组件调用注入示例
Nov 11 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
javascript document.images实例
2008/05/27 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
动态创建类实例代码
2009/10/07 Python
Python正则表达式介绍
2012/08/06 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python算法应用实战之队列详解
2017/02/04 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
中班上学期幼儿评语
2014/04/30 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
2014年食堂工作总结
2014/11/20 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书