这段代码来自PHPcms觉得很好,所以拿出来分享给大家,有需要的朋友可以参考一下。
- @H_403_6@/**
- @H_403_6@ * 文件扫描
- @H_403_6@ * @param $filepath 目录
- @H_403_6@ * @param $subdir 是否搜索子目录
- @H_403_6@ * @param $ex 搜索扩展
- @H_403_6@ * @param $isdir 是否只搜索目录
- @H_403_6@ * @param $md5 是否生成MD5验证码
- @H_403_6@ * @param $enforcement 强制更新缓存
- @H_403_6@ */
- function scan_file_lists($filepath, $subdir = 1, $ex = '', $isdir = 0, $md5 = 0, $enforcement = 0) {
- static $file_list = array();
- if ($enforcement) $file_list = array();
- $flags = $isdir ? GLOB_ONLYDIR : 0;
- $list = glob($filepath.'*'.(!emptyempty($ex) && emptyempty($subdir) ? '.'.$ex : ''), $flags);
- if (!emptyempty($ex)) $ex_num = strlen($ex);
- foreach ($list as $k=>$v) {
- $v1 = str_replace(PHPCMS_PATH, '', $v);
- if ($subdir && is_dir($v)) {
- scan_file_lists($v.DIRECTORY_SEPARATOR, $subdir, $ex, $isdir, $md5);
- continue;
- }
- if (!emptyempty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) == $ex) {
- if ($md5) {
- $file_list[$v1] = md5_file($v);
- } else {
- $file_list[] = $v1;
- }
- continue;
- } elseif (!emptyempty($ex) && strtolower(substr($v, $ex_num)) != $ex) {
- unset($list[$k]);
- continue;
- }
- }
- return $file_list;
- }