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