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));
}


分享 收藏
发表我的评论

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~