① 读取文件夹大小
a. 封装计算文件夹大小的函数
b. 打开文件夹
c. 循环判断文件夹下的内容是文件还是文件夹,如果是文件,则累积相加文件的大小;如果是文件夹,则递归调用该函数
注意两个问题:
a. 在计算每个文件夹大小之前,应该清空变量 $size,否则文件夹大小会累加(index.php)
b. 在计算文件夹大小的方法中,$size 应该设置为全局变量(dir.func.php)
//得到文件夹大小function dirSize($path){ $handle = opendir($path); $size = 0; //static $size; global $size; while(($item = readdir($handle)) !== false){ if($item != '.' && $item != '..'){ if(is_file($path.'/'.$item)){ $size += filesize($path.'/'.$item); }else if(is_dir($path.'/'.$item)){ dirSize($path.'/'.$item); //递归的另一种写法 //$func = __FUNCTION__; //$func($path.'/'.$item); } } } closedir($handle); return $size;}
index.php:
{$content}"; //高亮显示PHP代码 //高亮显示字符串中的PHP代码 if(strlen($content)){ $newContent=highlight_string($content,true); //高亮显示文件中的PHP代码 //highlight_file($filename); $str=<<EOF; echo $str; }else{ alertMes("文件没有内容,请编辑再查看!",$redirect); }}else if($act == 'editContent'){ $content = file_get_contents($filename); $str=<<
$newContent EOF; echo $str; }else if($act == 'doEdit'){ //修改文件内容 $content = $_POST['content']; if(file_put_contents($filename, $content)){ $mes = '文件修改成功'; }else if(!$content){ $mes = '文件内容被清空'; }else{ $mes = '文件修改失败'; } alertMes($mes,$redirect);}else if($act == 'renameFile'){ //重命名文件 $str = << EOF;echo $str;}else if($act == 'doRename'){ //实现重命名操作 $newname = $_POST['newname']; $mes = renameFile($filename,$newname); alertMes($mes,$redirect);}else if($act == 'delFile'){ $mes = delFile($filename); alertMes($mes,$redirect);}else if($act == 'downFile'){ downFile($filename);}?> Insert title here 在线文件管理器
dir.func.php: