完结!
【关于老师课程中目录读取的函数封装】
我写了两个版本的目录读取
第一种是老师的写法
第二种是我在网上搜索问题时无意发现的方法
<?php //第一种 //使用opendir()、readdir()、closedir()遍历给定目录下的所有文件 function readDirectory($path){ if (!is_dir($path)){ return '不是一个目录'; } $handle = opendir($path); $arr = []; while (($file = readdir($handle)) !== false){ if ($file != '.' && $file != '..'){ if (is_file($path . '/' . $file)){ $arr['file'][] = $file; } if (is_dir($path . '/' . $file)){ $arr['dir'][] = $file; } } } closedir($handle); return $arr; } //第二种 //使用scandir直接扫描指定目录下的所有文件 function scanDirectory($path){ $arr = @scandir($path,SCANDIR_SORT_NONE); $arr2 = []; if (!$arr){ return '不是一个目录'; } foreach ($arr as $item){ if ($item != '.' && $item != '..'){ $file_path = $path . '/' . $item; if (is_dir($file_path)){ $arr2['dir'][] = $item; } if (is_file($file_path)){ $arr2['file'][] = $item; } } } return $arr2; } //以上两种方法完全一致,只是scandir方法的第二个参数可以按照字母的升降序排列 //上传文件 function uploadFile($filename,$path){ if (!$filename['error']){ if (is_uploaded_file($filename['tmp_name'])){ if (move_uploaded_file($filename['tmp_name'],$path . '/' . $filename['name'])){ return '上传成功'; }else{ die(); return '上传失败'; } }else{ return '不是通过HTTP POST上传的,请重试!'; } }else{ return '上传出错,错误号:' . $filename['error']; } }
我觉得还是scandir方法好用,简单,方便,快捷;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> <link rel="stylesheet" href="cikonss.css" /> <style type="text/css"> body,p,div,ul,ol,table,dl,dd,dt{ margin:0; padding: 0; } a{ text-decoration: none; } ul,li{ list-style: none; float: left; } #top{ width:100%; height:48px; margin:0 auto; background: #E2E2E2; } #navi a{ display: block; width:48px; height: 48px; } #main{ margin:0 auto; border:2px solid #ABCDEF; } .small{ width:25px; height:25px; border:0; } </style> </head> <body> <h1>慕课网-在线文件管理器</h1> <div id="top"> <ul id="navi"> <li><a href="index.php" title="主目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li> <li><a href="#" onclick="show('createFile')" title="新建文件" ><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-file"></span></span></a></li> <li><a href="#" onclick="show('createFolder')" title="新建文件夹"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-folder"></span></span></a></li> <li><a href="#" onclick="show('uploadFile')"title="上传文件"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-upload"></span></span></a></li> <li><a href="#" title="返回上级目录" onclick="goBack('<?php echo $back;?>')"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-arrowLeft"></span></span></a></li> </ul> </div> </body> </html>
剥出来的静态网页
最后效果的 操作界面
文件夹的相关操作
文件相关操作
就是通过浏览器,对服务器项目实现远程操作