php教程

超轻量级php框架startmvc

php文件操作相关类实例

更新时间:2020-03-04 22:11:32 作者:startmvc
本文实例讲述了php文件操作相关类。分享给大家供大家参考。具体如下:<?phpclassfile_di

本文实例讲述了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 文件操作