龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 和文件操作有关的类

时间:2014-07-28 11:08来源:网络整理 作者:网络 点击:
分享到:
和文件操作有关的类 [代码片段(197行)]
<?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);

?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接