程序员人生 网站导航

php目录文件扫描程序

栏目:php教程时间:2013-10-06 20:10:28

这段代码来自phpcms觉得很好,所以拿出来分享给大家,有需要的朋友可以参考一下。

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

最新技术推荐