完成对创建目录方法、读取目录并包含目录文件大小的方法进行封装和调用

Original 2019-04-17 17:21:43 219
abstract:<?php    require 'dir_fun.php';    //创建一个为demoDir的目录文件    echo create_Dir('deomDir'),'<br>';//    查询目录的子文件、子目录的文件大小   &nbs

<?php
   require 'dir_fun.php';
   //创建一个为demoDir的目录文件
   echo create_Dir('deomDir'),'<br>';

//    查询目录的子文件、子目录的文件大小
   echo '<pre>';

print_r(read_Dir('text'));


<!--dir_fun.php-->
<?php
/**
 * 对目录创建
 * @param $dirName //需要创建的目录名称
 * @return string  //提示信息
 */
function create_Dir($dirName)
{
    //判断是否存在相同文件或目录
    if (file_exists($dirName)){
        return '存在相同文件';
    }
//创建目录并判断
    if(mkdir($dirName,0777,true)){
        return '目录创建成功';
    }
    return '目录创建失败';
}

/**
 * 对目录文件进行读操作
 * @param $path //需要读取的目录文件
 * @return array //提示信息
 */
function read_Dir($path)
{
    $arr = [];
    //判断路径是否有效
    if (!file_exists($path)){
       $arr[] ="无效路径";
       return $arr;
    }

    global $sum;
    $dir = opendir($path);
    //对目录文件进行循环遍历
    while($item = readdir($dir))
    {
//        过滤"." 和 ".."目录
        if ($item != "." && $item != ".."){
//            如果为文件时进行计录
            if (is_file($path . "/" . $item)){
                $arr['file'][]=$item .'-------文件大小为:--------'.trans_Byte(filesize($path . "/" . $item));
                $sum += filesize($path . "/" . $item);

            }
//            如果为目录时进行计录
            if (is_dir($path . "/" .$item)){
                $arr['dir'][]=$item .'--------目录大小为:--------'.trans_Byte($sum);
            }
        }
    }
    closedir($dir);
    return $arr;
}


/**
 * 对文件大小后定义单位
 * @param $byte    //待转换的字节数
 * @param int $precision //四舍五入默认为2位
 * @return string    //返回转换后的数
 */
function trans_Byte($byte,$precision=2)
{
    $KB =1024;
    $MB = 1024*$KB;
    $GB = 1024*$MB;
    $TB = 1024*$GB;

    //round 四舍五入,保留精度。
    if($byte <$KB){
        return $byte .'B';
    }elseif($byte<$MB){
        return round($byte/$KB,$precision).'KB';
    }elseif($byte<$GB){
        return round($byte/$MB,$precision).'MB';
    }elseif($byte<$TB){
        return round($byte/$GB,$precision).'GB';
    }else{
        return round($byte/$TB,$precision).'TB';
    }
}

20190417171452.jpg

Correcting teacher:查无此人Correction time:2019-04-18 10:08:18
Teacher's summary:完成的不错。学习后,要知道用在哪里。继续加油。

Release Notes

Popular Entries