global.func.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. /**
  3. * 文件扫描
  4. * @param $filepath 目录
  5. * @param $subdir 是否搜索子目录
  6. * @param $ex 搜索扩展
  7. * @param $isdir 是否只搜索目录
  8. * @param $md5 是否生成MD5验证码
  9. * @param $enforcement 强制更新缓存
  10. */
  11. function scan_file_lists($filepath, $subdir = 1, $ex = '', $isdir = 0, $md5 = 0, $enforcement = 0) {
  12. static $file_list = array();
  13. if ($enforcement) $file_list = array();
  14. $flags = $isdir ? GLOB_ONLYDIR : 0;
  15. $list = glob($filepath.'*'.(!empty($ex) && empty($subdir) ? '.'.$ex : ''), $flags);
  16. if (!empty($ex)) $ex_num = strlen($ex);
  17. foreach ($list as $k=>$v) {
  18. $v1 = str_replace(PHPCMS_PATH, '', $v);
  19. if ($subdir && is_dir($v)) {
  20. scan_file_lists($v.DIRECTORY_SEPARATOR, $subdir, $ex, $isdir, $md5);
  21. continue;
  22. }
  23. if (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) == $ex) {
  24. if ($md5) {
  25. $file_list[$v1] = md5_file($v);
  26. } else {
  27. $file_list[] = $v1;
  28. }
  29. continue;
  30. } elseif (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) != $ex) {
  31. unset($list[$k]);
  32. continue;
  33. }
  34. }
  35. return $file_list;
  36. }