创建,读取目录

原创2019-02-19 11:49:12134
摘要:<?php /**  * 目录创建操作  * @param $dirName  //需要创建的目录名  * @return string   提示信息  */ function create_floder($dirName) {  &
<?php
/**
 * 目录创建操作
 * @param $dirName  //需要创建的目录名
 * @return string   提示信息
 */
function create_floder($dirName)
{
    //判断是否存在相同文件或目录
    if (is_dir($dirName)) {
        return '该文件已存在';
    }
    //创建目录并判断
    if (mkdir($dirName, 0777, true)) {
        return '目录创建成功';
    }
    return '目录创建失败';
}

/**
 * 目录读取操作
 * @param $path     //读取的目录
 * @return array    //数组|失败
 */
function read_dir($path)
{
    $arr = [];
    $dir = opendir($path);
    while ($item = readdir($dir)) {
        if ($item != '.' && $item != '..') {
            if (is_file($path . '/' . $item)) {
                $arr['file'][] = $item;
            }
            if (is_dir($path . '/' . $item)) {
                $arr['dir'][] = $item;
            }
        }
    }
    closedir($dir);
    $arr['size'][] = dir_size($path);
    return $arr;
}

/**
 * 查询目录大小
 * @param $path     //需要查询大小的目录
 * @return string   //目录的大小
 */
function dir_size($path)
{
    //全局变量
    global $sum;
    $dir = opendir($path);
    while ($item = readdir($dir)) {
        if ($item != '.' && $item != '..') {
            if (is_file($path . '/' . $item)) {
                $sum += filesize($path . '/' . $item);
            }
            if (is_dir($path . '/' . $item)) {
                $func = __FUNCTION__;
                $func($path . '/' . $item);
            }
        }
    }
    closedir($dir);
    return trans_byte($sum);
}

/**
 * @param $byte //字节大小
 * @param int $precision //要保留的小数
 * @return string
 */
function trans_byte($byte, $precision = 2)
{
    $kb = 1024;
    $mb = 1024 * $kb;
    $gb = 1024 * $mb;
    $tb = 1024 * $gb;

    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';
    } elseif ($byte < $gb) {
        return round($byte / $tb, $precision) . 'TB';
    }
}


批改老师:韦小宝批改时间:2019-02-19 13:04:10
老师总结:写的很不错 PHP中的文件操作的函数在实际的开发中用到的次数还是蛮频繁的 没事的时候自己要记得多练习

发布手记

热门词条