Exemplo n.º 1
0
/**
 * 文件扫描
 * @param $filepath     目录
 * @param $subdir       是否搜索子目录
 * @param $ex           搜索扩展
 * @param $isdir        是否只搜索目录
 * @param $md5			是否生成MD5验证码
 * @param $enforcement  强制更新缓存
 */
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 . '*' . (!empty($ex) && empty($subdir) ? '.' . $ex : ''), $flags);
    if (!empty($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 (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) == $ex) {
            if ($md5) {
                $file_list[$v1] = md5_file($v);
            } else {
                $file_list[] = $v1;
            }
            continue;
        } elseif (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) != $ex) {
            unset($list[$k]);
            continue;
        }
    }
    return $file_list;
}
Exemplo n.º 2
0
 /**
  * 创建MD5
  */
 public function md5_creat()
 {
     set_time_limit(120);
     $pro = isset($_GET['pro']) && intval($_GET['pro']) ? intval($_GET['pro']) : 1;
     Loader::helper('scan:global');
     switch ($pro) {
         case '1':
             // 统计文件
             $msg = L('please_wait');
             ob_start();
             include $this->view('md5_creat');
             ob_flush();
             ob_clean();
             $list = scan_file_lists(BASE_PATH, 1, 'php', 0, 1);
             $list = "<?php\nreturn " . stripcslashes(var_export($list, true)) . ";\n?>";
             File::write(DATA_PATH . 'scan/md5_' . date('Y-m-d') . '.php', $list);
             echo '<script type="text/javascript">location.href="?app=scan&controller=index&action=md5_creat&pro=2"</script>';
             break;
         case '2':
             showmessage(L('viewreporttrue'), U('scan/index/init'));
             break;
     }
 }
Exemplo n.º 3
0
	public function md5_creat() {
		set_time_limit(120);
		$pro = isset($_GET['pro']) && intval($_GET['pro']) ? intval($_GET['pro']) : 1;
		pc_base::load_app_func('global');
		switch ($pro) {
			case '1'://统计文件
				$msg = L('please_wait');
				ob_start();
				include $this->admin_tpl('md5_creat');
				ob_flush();
				ob_clean();
				$list = scan_file_lists(ZLCMS_PATH, 1, 'php', 0, 1);
				setcache('md5_'.date('Y-m-d'), $list, 'scan');
				echo '<script type="text/javascript">location.href="?m=scan&c=index&a=md5_creat&pro=2&pc_hash='.$_SESSION['pc_hash'].'"</script>';
				break;
				
			case '2':
				showmessage(L('viewreporttrue'),'?m=scan&c=index&a=init');
				break;
		}
	}