php常用文件操作函数方法
21-07-27
slbcun
634℃
0
1、使用递归删除目录及目录下所有文件的方法。
function delDir($dir){ @$dh=opendir($dir); //打开目录流 while(!!$file=@readdir($dh)){ if($file!='.' && $file!='..'){ $fullpath=$dir.'/'.$file; if(!is_dir($fullpath)){ //如果是文件直接删除 unlink($fullpath); }else{ //如果是目录 递归调用本身 delDir($fullpath); } } } @closedir($dh); //关闭目录流 if(@rmdir($dir)){ //删除目录本身 return true; }else{ return false; } }
2、能创建多级目录的PHP函数
function createdirlist($path,$mode){ if (is_dir($path)){ //判断目录存在否,存在不创建 echo "目录'" . $path . "'已经存在"; //已经存在则输入路径 }else{ //不存在则创建目录 $re=mkdir($path,$mode,true); //第三个参数为true即可以创建多极目录 if ($re){ echo "目录创建成功";//目录创建成功 }else{ echo "目录创建失败"; } } } $path="../a/x/cc/cd"; //要创建的目录 $mode=0755; //创建目录的模式,即权限. createdirlist($path,$mode);//测试
3、php函数统计某个目录下所有文件大小
function getDirSize($dirname){ $dirsize = 0;//初始化一个大小为0 $handle = opendir($dirname);//打开这个目录 //从目录句柄中循环读取条目,并按照系统中的顺序返回目录中下一个文件的文件名 while($fliename = readdir($handle)){//readdir函数用于从目录中读取条目 if($fliename != "." && $fliename != ".."){ $file = $dirname.'/'.$fliename; //判断给定文件名是否是一个目录 if(is_dir($file)){ //如果是一个目录,则调用函数getDirSize() $dirsize+=getDirSize($file); }else{ //如果不是目录是一个文件,则取得其大小并且累加到变量$diesize $dirsize+=filesize($file);//filesize获取文件大小 } } } closedir($handle);//关闭目录句柄 return $dirsize;//返回累加的大小 } $dirname = "E:/www";//指定要遍历的目录 echo $dirname."目录中文件的总大小为:".getDirSize($dirname)."B";
4、遍历一个文件夹下的所有文件和子文件夹
//方法一: function dir_recurse($dir) { $i = 1; if($handle = opendir($dir)) {//打开这个目录 while(false !== ($file = readdir($handle))) {//readdir函数用于从目录中读取条目 if($file != "." && $file != ".." ) { if(is_dir($dir."/".$file) == true) {//判断是否是一个目录 $fullpath = $dir."/".$file; dir_recurse($fullpath); echo "$fullpath\n"."<br>"; $i++; }else { $fullpath = $dir."/".$file; echo "$fullpath\n"."<br>"; $i++; } } } closedir($handle); } } $dir = "E:/KuGou"; dir_recurse($dir); //方法二: function my_scandir($dir) { $files=array(); if(is_dir($dir))//判断是否是目录 { if($handle=opendir($dir))//打开目录句柄 { while(($file=readdir($handle))!==false)//从目录句柄中读取条目 { if($file!= "." && $file!="..") { if(is_dir($dir."/".$file)) { $files[$file]=my_scandir($dir."/".$file); } else { $files[]=$dir."/".$file; } } } closedir($handle); return $files; } } } $dir = "E:/KuGou"; echo "<pre>"; print_r(my_scandir($dir));
5、获取一个文件的扩展名
//第一种: function get_ext1($file_name){ return strrchr($file_name, '.'); } //第二种: function get_ext2($file_name){ return substr($file_name, strrpos($file_name, '.')); } //第三种: function get_ext3($file_name){ $p=explode('.', $file_name); return array_pop($p); } //第四种: function get_ext4($file_name){ $p = pathinfo($file_name); return $p['extension']; } //第五种: function get_ext5($file_name){ return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); } //第六种: function get_text6($file_name){ return end(explode('.',$file_name)); }