摘要:<?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';
}
}
批改老师:查无此人批改时间:2019-04-18 10:08:18
老师总结:完成的不错。学习后,要知道用在哪里。继续加油。