function d_filelist_all($dir) { setreadable($dir, true); if (!@($dh = opendir($dir)) && !@($ftp_list = d_ftplist($dir))) { return false; } if ($dh) { $dirs = $files = $fsizes = array(); /* chdir($dir); */ while (false !== @($file = readdir($dh))) { if ($file == '.' || $file == '..') { continue; } if (is_dir($dir . '/' . $file)) { $dirs[] = $dir . '/' . $file; } else { $files[] = $dir . '/' . $file; } $fsizes[$dir . '/' . $file] = filesize($dir . '/' . $file); } closedir($dh); } else { extract($ftp_list); } foreach ($dirs as $v) { $res = d_filelist_all($v); $dirs = array_merge($dirs, $res['dirs']); $files = array_merge($files, $res['files']); $fsizes = array_merge($fsizes, $res['fsizes']); } return array('dirs' => $dirs, 'files' => $files, 'fsizes' => $fsizes); }
function d_file_exists($file) { setreadable(dirname($file),true); if(file_exists($file)) return true; if(abs_path($file,false)==abs_path($GLOBALS['CFG']['ftp']['dir'],false)) return true; // for root directory if(!$info = d_ftplist(dirname($file))) return false; return in_array(abs_path($file,false),$info['dirs']) || in_array(abs_path($file),$info['files']); }