PHP获取目标路径(图片目录)的文件目录的原生代码,写出来后发现还有很大的优化空间,但由于是练手的作品没再深入修改,但这几天都有同学问我这个问题,所以决定开通博客,并在此献丑,若有更优方法,也请各位不吝斧正!
闲话少说,代码如下:
<?phpclass files{ protected function refiles($path){ if(file_exists($path)){ $ref = scandir($path,1); foreach($ref as $val){ if($val=='.'||$val=='..'){ continue; } $arr[$val] = is_dir($path.$val)?'folder':'img'; } } else{ $arr = false; } return $arr; } protected function reall($arr,$path){ foreach($arr as $key =>$val){ if($val == 'folder'){ $newpath = $path.$key."/"; $temps = $this->refiles($newpath); if($temps){ $newtemp = $this->reall($temps,$newpath); $arr[$key] = $newtemp; } else{ $arr[$key] = 'null'; } } } return $arr; } /** * 函数名称:allfiles() * 函数作用:取得指定路径下的所有目录 * 参数说明:$path:指定的路径 * 返 回 值:$result 目录数组 or false */ public function allfiles($path){ $allfiles = $this -> refiles($path); if($allfiles){ $newallfiles = $this -> reall($allfiles,$path); $allfiles =$newallfiles; } return $allfiles; } /** * 函数名称:Dloop() * 函数作用:双层循环取得结构树 * 参数说明:$path:指定的路径 * 返 回 值:$result 目录数组 or false */ public function Dloop($arr,$path,$space=0,$spaces=0){ foreach($arr as $key => $val){ if(is_array($val)){ $spaces += 15; $newpath = $path.$key."/"; $str .= '<tr><td class="content_td"><div php plain">.$space.'px;"></div>'.$key.'</td><td class="content_td">'.$kb.'</td><td class="content_td"> </td></tr>'; $str .= $this -> Dloop($val,$newpath,$spaces,$spaces); } else{ //$str .= '这里写入树'; if(stripos($key,'.jpg')||stripos($key,'.jpeg')){ $fn = '<div php plain">.$space.'px;"></div>'.$key; } elseif(stripos($key,'.gif')){ $fn = '<div php plain">.$space.'px;"></div>'.$key; } elseif(stripos($key,'.png')){ $fn = '<div php plain">.$space.'px;"></div>'.$key; } else{ $fn = '<div php plain">.$space.'px;"></div>'.$key; } $kb = round(filesize($path.$key)/1024)."k"; $str .= '<tr><td class="content_td">'.$fn.'</td><td class="content_td">'.$kb.'</td><td class="content_td"> </td></tr>'; } } return $str; }}?><!--网页测试部分<table width="100%" border="0" cellpadding="0" cellspacing="0" class="content_tab"></?phpinclude ("../../include/files.php");$files = new files;$path = '../../images/';$newallf = $files -> allfiles($path);if ($newallf){ $str = $files -> Dloop($newallf,$path);?> <tr> <td width="60%" class="content_td">目录及图片</td> <td width="20%" class="content_td">文件大小</td> <td width="20%" class="content_td">管理操作</td> </tr></?phpecho $str; }else {echo '<tr align="center"><td class="content_td">暂无数据</td></tr>';}?></table>--> |
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦