完结!
【关于老师课程中目录读取的函数封装】
我写了两个版本的目录读取
第一种是老师的写法
第二种是我在网上搜索问题时无意发现的方法
<?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方法好用,简单,方便,快捷;