php文件操作相关类实例

5年以前  |  阅读数:645 次  |  编程语言:PHP 

本文实例讲述了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例