private static function listCommands() { $commands = array(); $dir = __DIR__; if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != ".." && $entry != "base.php") { $s1 = explode("cli_", $entry); $s2 = explode(".php", $s1[1]); if (sizeof($s2) == 2) { require_once "{$dir}/{$entry}"; $command = $s2[0]; $className = "cli_{$command}"; $class = new $className(); if (is_a($class, "cliCommand")) { $commands[] = $command; } } } } closedir($handle); } sort($commands); return implode(" ", $commands); }
function quoteFromDir($dir) { $amount = 0; $index = 0; if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if (strpos($file, ".dat") != false) { $len = strlen($file); if (substr($file, $len - 4) == ".dat") { $number = $this->getNumberOfQuotes($dir . "/" . $file); $amount += $number; $quotes[$index] = $amount; $files[$index] = $file; $index++; } } } srand((double) microtime() * 1000000); $index = rand(0, $amount); $i = 0; while ($quotes[$i] < $index) { $i++; } return $this->getRandomQuote($dir . "/" . $files[$i]); } return -1; }
function delDir($dir) { $dh = opendir($dir); if ($dh) { while ($entry = readdir($dh)) { if ($entry != "." && $entry != "..") { if (is_dir($dir . '/' . $entry)) { $this->delDir($dir . '/' . $entry); } else { $thumb = $dir . '/.thumb_' . $entry; if (file_exists($thumb)) { if (!unlink($thumb)) { return false; } } if (!unlink($dir . '/' . $entry)) { return false; } } } } closedir($dh); return rmdir($dir); } else { return false; } }
/** * Returns an array of found directories * * This function checks every found directory if they match either $uid or $gid, if they do * the found directory is valid. It uses recursive function calls to find subdirectories. Due * to the recursive behauviour this function may consume much memory. * * @param string path The path to start searching in * @param integer uid The uid which must match the found directories * @param integer gid The gid which must match the found direcotries * @param array _fileList recursive transport array !for internal use only! * @return array Array of found valid pathes * * @author Martin Burchert <*****@*****.**> * @author Manuel Bernhardt <*****@*****.**> */ function findDirs($path, $uid, $gid) { $list = array($path); $_fileList = array(); while (sizeof($list) > 0) { $path = array_pop($list); $path = makeCorrectDir($path); $dh = opendir($path); if ($dh === false) { standard_error('cannotreaddir', $path); return null; } else { while (false !== ($file = @readdir($dh))) { if ($file == '.' && (fileowner($path . '/' . $file) == $uid || filegroup($path . '/' . $file) == $gid)) { $_fileList[] = makeCorrectDir($path); } if (is_dir($path . '/' . $file) && $file != '..' && $file != '.') { array_push($list, $path . '/' . $file); } } @closedir($dh); } } return $_fileList; }
/** * Chmods files and directories recursively to given permissions. * * @param string $path Root path to begin changing mode [without trailing slash]. * @param string $filemode Octal representation of the value to change file mode to [null = no change]. * @param string $foldermode Octal representation of the value to change folder mode to [null = no change]. * * @return boolean True if successful [one fail means the whole operation failed]. * * @since 11.1 */ public static function setPermissions($path, $filemode = '0644', $foldermode = '0755') { // Initialise return value $ret = true; if (is_dir($path)) { $dh = opendir($path); while ($file = readdir($dh)) { if ($file != '.' && $file != '..') { $fullpath = $path . '/' . $file; if (is_dir($fullpath)) { if (!JPath::setPermissions($fullpath, $filemode, $foldermode)) { $ret = false; } } else { if (isset($filemode)) { if (!@chmod($fullpath, octdec($filemode))) { $ret = false; } } } } } closedir($dh); if (isset($foldermode)) { if (!@chmod($path, octdec($foldermode))) { $ret = false; } } } else { if (isset($filemode)) { $ret = @chmod($path, octdec($filemode)); } } return $ret; }
/** * Returns all certificates trusted by the user * * @return \OCP\ICertificate[] */ public function listCertificates() { if (!$this->config->getSystemValue('installed', false)) { return array(); } $path = $this->getPathToCertificates() . 'uploads/'; if (!$this->view->is_dir($path)) { return array(); } $result = array(); $handle = $this->view->opendir($path); if (!is_resource($handle)) { return array(); } while (false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..') { try { $result[] = new Certificate($this->view->file_get_contents($path . $file), $file); } catch (\Exception $e) { } } } closedir($handle); return $result; }
/** * Gets all available MIME-types * * @return array array[mimetype], array[transformation] * * @access public * * @author Garvin Hicking <*****@*****.**> */ function PMA_getAvailableMIMEtypes() { $handle = opendir('./libraries/transformations'); $stack = array(); $filestack = array(); while (($file = readdir($handle)) != false) { $filestack[$file] = $file; } closedir($handle); if (is_array($filestack)) { @ksort($filestack); foreach ($filestack as $key => $file) { if (preg_match('|^.*__.*\\.inc\\.php$|', trim($file))) { // File contains transformation functions. $base = explode('__', str_replace('.inc.php', '', $file)); $mimetype = str_replace('_', '/', $base[0]); $stack['mimetype'][$mimetype] = $mimetype; $stack['transformation'][] = $mimetype . ': ' . $base[1]; $stack['transformation_file'][] = $file; } elseif (preg_match('|^.*\\.inc\\.php$|', trim($file))) { // File is a plain mimetype, no functions. $base = str_replace('.inc.php', '', $file); if ($base != 'global') { $mimetype = str_replace('_', '/', $base); $stack['mimetype'][$mimetype] = $mimetype; $stack['empty_mimetype'][$mimetype] = $mimetype; } } } } return $stack; }
/** * Compiles all source templates below the source scheme directory * including subdirectories * * @param string $ root directory name * @param string $ path relative to root * @return void * @access protected */ function recursive_compile_all($root, $path) { if ($dh = opendir($root . $path)) { while (($file = readdir($dh)) !== false) { if (substr($file, 0, 1) == '.') { continue; } if (is_dir($root . $path . $file)) { recursive_compile_all($root, $path . $file . '/'); continue; } if (substr($file, -5, 5) == '.html') { compile_template_file($path . $file); } else if (substr($file, -5, 5) == '.vars') { compile_var_file($path . $file); } } closedir($dh); } }
function sup_repertoire($chemin) { // vérifie si le nom du repertoire contient "/" à la fin if ($chemin[strlen($chemin) - 1] != '/') { $chemin .= '/'; // rajoute '/' } if (is_dir($chemin)) { $sq = opendir($chemin); // lecture while ($f = readdir($sq)) { if ($f != '.' && $f != '..') { $fichier = $chemin . $f; // chemin fichier if (is_dir($fichier)) { sup_repertoire($fichier); // rapel la fonction de manière récursive } else { unlink($fichier); // sup le fichier } } } closedir($sq); rmdir($chemin); // sup le répertoire } else { unlink($chemin); // sup le fichier } }
public static function copyr($source, $dest) { // recursive function to copy // all subdirectories and contents: if (is_dir($source)) { $dir_handle = opendir($source); $sourcefolder = basename($source); if (!is_dir($dest . "/" . $sourcefolder)) { mkdir($dest . "/" . $sourcefolder); } while ($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (is_dir($source . "/" . $file)) { self::copyr($source . "/" . $file, $dest . "/" . $sourcefolder); } else { copy($source . "/" . $file, $dest . "/" . $file); } } } closedir($dir_handle); } else { // can also handle simple copy commands copy($source, $dest); } }
/** * Returns a listing of all files in the specified folder and all subdirectories up to 100 levels deep. * The depth of the recursiveness can be controlled by the $levels param. * * @since 2.6.0 * * @param string $folder Full path to folder * @param int $levels (optional) Levels of folders to follow, Default: 100 (PHP Loop limit). * @return bool|array False on failure, Else array of files */ function list_files($folder = '', $levels = 100) { if (empty($folder)) { return false; } if (!$levels) { return false; } $files = array(); if ($dir = @opendir($folder)) { while (($file = readdir($dir)) !== false) { if (in_array($file, array('.', '..'))) { continue; } if (is_dir($folder . '/' . $file)) { $files2 = list_files($folder . '/' . $file, $levels - 1); if ($files2) { $files = array_merge($files, $files2); } else { $files[] = $folder . '/' . $file . '/'; } } else { $files[] = $folder . '/' . $file; } } } @closedir($dir); return $files; }
function GetFoldersAndFiles($resourceType, $currentFolder) { // Map the virtual path to the local server path. $sServerDir = ServerMapFolder($resourceType, $currentFolder); // Initialize the output buffers for "Folders" and "Files". $sFolders = '<Folders>'; $sFiles = '<Files>'; $oCurrentFolder = opendir($sServerDir); while ($sFile = readdir($oCurrentFolder)) { if ($sFile != '.' && $sFile != '..') { if (is_dir($sServerDir . $sFile)) { $sFolders .= '<Folder name="' . ConvertToXmlAttribute($sFile) . '" />'; } else { $iFileSize = filesize($sServerDir . $sFile); if ($iFileSize > 0) { $iFileSize = round($iFileSize / 1024); if ($iFileSize < 1) { $iFileSize = 1; } } $sFiles .= '<File name="' . ConvertToXmlAttribute($sFile) . '" size="' . $iFileSize . '" />'; } } } echo $sFolders; // Close the "Folders" node. echo '</Folders>'; echo $sFiles; // Close the "Files" node. echo '</Files>'; }
function dokusAnzeigen($eintragid) { $ordnerid = $eintragid; $directory = "attachments/{$eintragid}/dokus/"; if (is_dir($directory) == true) { $handle = opendir($directory); while (false !== ($file = readdir($handle))) { $endung = substr($file, -3); $endung = strtolower($endung); if ($endung == "doc" || $endung == "txt" || $endung == "css" || $endung == "htm" || $endung == "tml" || $endung == "php" || $endung == "xls" || $endung == "zip" || $endung == "pdf") { $gezeigtesDok = "{$directory}{$file}"; $dateityp = "dokus"; echo "<a href='{$gezeigtesDok}' target='_blank'><br><nobr><img src='picts/miniicon_" . $endung . ".gif' border='0' > {$file}</nobr></a> "; if (isset($_SESSION["username"])) { echo "<a href='#' onClick='loeschpop(\"{$file}\",\"{$ordnerid}\",\"{$dateityp}\");'> <img src='picts/delete.gif' border='0' alt='loescht Dokument'></a>"; } } //end if } //end while closedir($handle); } else { echo ""; } //end if }
function transfer_templates($dir, $root_dir, $level = 0) { if (!$dh = @opendir($dir)) die("ERROR! Unable to open directory " . $dir . ".\n"); while ($file = readdir($dh)) { if ($file == "." || $file == "..") continue; $full_path = $dir . "/" . $file; $filetype = filetype($full_path); if ($filetype == "dir") { transfer_templates($full_path, $root_dir, $level + 1); continue; } if ($filetype != "file") // ignore special files and links continue; $ending = substr($file, strlen($file) - 4); if ($ending != ".tpl") // ignore files that are not templates (end in .tpl) continue; $rel_path = substr($full_path, strlen($root_dir) + 1); $sql = "INSERT IGNORE INTO Templates (Name, Level) values('" . $rel_path . "', " . $level . ")"; if (!mysql_query($sql)) die("Unable to insert template " . $rel_path . ".\n"); } }
function add_demo_templates() { $dir = dirname(__FILE__) . '/templates'; if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != ".." && $entry != ".DS_Store") { $template_name = str_replace('.php', '', $entry); $template_name = str_replace('-', ' ', $template_name); $template_name = ucwords($template_name); $template = file_get_contents($dir . '/' . $entry); $template_arr = array("name" => stripslashes($template_name), "template" => stripslashes($template)); $option_name = 'wpb_js_templates'; $saved_templates = get_option($option_name); $template_id = sanitize_title($template_name) . "_" . rand(); if ($saved_templates == false) { $deprecated = ''; $autoload = 'no'; // $new_template = array(); $new_template[$template_id] = $template_arr; // add_option($option_name, $new_template, $deprecated, $autoload); } else { $saved_templates[$template_id] = $template_arr; update_option($option_name, $saved_templates); } } } closedir($handle); } return true; }
/** * * @static * @return array */ public static function collect() { if (null === self::$_collection) { $themes = Axis_Collect_Theme::collect(); $layouts = array(); $designPath = Axis::config('system/path') . '/app/design/front'; foreach ($themes as $theme) { $path = $designPath . '/' . $theme . '/layouts'; if (!file_exists($path)) { continue; } $dir = opendir($path); while ($file = readdir($dir)) { if (is_dir($path . '/' . $file) || substr($file, 0, 7) != 'layout_') { continue; } $layout = substr($file, 0, -6); if (isset($layouts[$layout])) { $layouts[$layout]['themes'][] = $theme; continue; } $layouts[$layout] = array('name' => $layout, 'themes' => array($theme)); } } $collection = array(); foreach ($layouts as $key => $layout) { $collection[$key] = $layout['name'] . ' (' . implode(', ', $layout['themes']) . ')'; } self::$_collection = $collection; } return self::$_collection; }
function getDirectory($path = '.', $level = 0) { $ignore = array('cgi-bin', '.', '..'); // Directories to ignore when listing output. Many hosts // will deny PHP access to the cgi-bin. $dh = @opendir($path); // Open the directory to the handle $dh while (false !== ($file = readdir($dh))) { // Loop through the directory if (!in_array($file, $ignore)) { // Check that this file is not to be ignored str_repeat(' ', $level * 4); // Just to add spacing to the list, to better // show the directory tree. if (is_dir("{$path}/{$file}")) { // Its a directory, so we need to keep reading down... echo "{$path}/{$file};"; getDirectory("{$path}/{$file}", $level + 1); // Re-call this same function but on a new directory. // this is what makes function recursive. } else { echo "{$path}/{$file};"; // Just print out the filename } } } closedir($dh); // Close the directory handle }
/** * Build a secured file with token name * * @param string $reqkey The reference key * * @return string The secure key */ function buildSecFile($reqkey) { $CI =& get_instance(); $skey = mt_rand(); $dir = $CI->config->item('token_dir'); $file = $skey . '.tok'; //make the file with the reqkey value in it file_put_contents($dir . '/' . $file, $reqkey); //do some cleanup - find ones older then the threshold and remove $rm = $CI->config->item('token_rm'); //this is in minutes if (is_dir($dir)) { if (($h = opendir($dir)) !== false) { while (($file = readdir($h)) !== false) { if (!in_array($file, array('.', '..'))) { $p = $dir . '/' . $file; if (filemtime($p) < time() - $rm * 60) { unlink($p); } } } } } return $skey; }
public function actionGetfilelist($template) { $fileutil = new FileUtil(); $dir = null; $loc = $_REQUEST['loc']; if ($loc == null) { $dir = 'themes/' . $template . '/views'; } else { $dir = $loc; } $handler = opendir($dir); $files = array(); while (($filename = readdir($handler)) !== false) { //务必使用!==,防止目录下出现类似文件名“0”等情况 $extend = pathinfo($filename); $extend = strtolower($extend["extension"]); if ($filename != "." && $filename != ".." && $extend !== "db") { if (is_dir($dir . '/' . $filename)) { $files[] = array(name => $filename, loc => $dir . '/' . $filename, isParent => true); } else { $files[] = array(name => $filename, loc => $dir . '/' . $filename, isParent => false); } } } closedir($handler); echo json_encode($files); }
function printThumbPhotos() { $handle = opendir("images/gallery"); $x = 0; $left = 0; $files = array(); $dimension = array(); while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { $thumb = '<li style="left:' . $left . 'px;">'; $thumb .= '<a href="#picture-feed-box-' . $x . '">'; $thumb .= '<img height="85" width="126" alt="" src="include/resizeimage.php?filename=' . $file . '&width=85&height=126" />'; $thumb .= '</a>'; $thumb .= '</li>'; $left += 132; $x++; $dimension = getimagesize("images/gallery/" . $file); $files[] = $file; $dimensions[] = $dimension[0] . "x" . $dimension[1]; echo $thumb . "\n"; } } closedir($handle); $result['json-files'] = json_encode($files); $result['json-dimensions'] = json_encode($dimensions); $result['count-pictures'] = $x > 0 ? $x : 0; return $result; }
function convert_dir_list($topdir) { global $config; if (!is_dir($topdir)) { return; } $imspector_config = $config['installedpackages']['imspector']['config'][0]; $limit = preg_match("/\\d+/", $imspector_config['reportlimit']) ? $imspector_config['reportlimit'] : "50"; $count = 0; if ($dh = opendir($topdir)) { while (($file = readdir($dh)) !== false) { if (!preg_match('/^\\./', $file) == 0) { continue; } if (is_dir("{$topdir}/{$file}")) { $list .= convert_dir_list("{$topdir}/{$file}"); } else { $list .= "{$topdir}/{$file}\n"; } $count++; if ($count >= $limit) { closedir($dh); return $list; } } closedir($dh); } return $list; }
function exploreDir($dirname, $keyword) { $allowedExt = ".php.pdf.chm"; $dh = opendir($dirname); while ($file = readdir($dh)) { if (is_dir("{$dirname}/{$file}")) { if ($file != '.' and $file != '..') { exploreDir("{$dirname}/{$file}", $keyword); } } else { if ($file == 'index.php') { $file = basename($dirname); if (ereg($keyword, $file)) { echo '<a href="', $dirname, '">', $file, '</a><br>'; } } else { if (ereg($keyword, $file)) { $ext = pathinfo($file, PATHINFO_EXTENSION); $ext = ".{$ext}"; if (ereg($ext, $allowedExt)) { echo '<a href="', $dirname, '/', $file, '">', basename($file, $ext), '</a><br>'; } } } } } closedir($dh); }
public static function dailyBackgroundURL() { # get the number of day in the year $numberOfDayInYear = date('z'); # if there is backgrounds-production directory, go with that, otherwise go with backgrounds # (backgrounds-production is too large to be included in the git repository) $directory = '/img/backgrounds-production/'; if (!file_exists(public_path() . $directory)) { $directory = '/img/backgrounds/'; } # get the number of background images & collect them in an array $i = 0; $fileListArray = array(); $dir = public_path() . $directory; if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { if (!in_array($file, array('.', '..')) && !is_dir($dir . $file) && !(substr($file, 0, 1) === ".")) { $fileListArray = array_add($fileListArray, $i, $file); $i++; } } } $numberOfBackgroundFiles = $i; # calculate which image will we use $imageNumber = $numberOfDayInYear % $numberOfBackgroundFiles; # create the url that will be passed to the view $imageName = $fileListArray[$imageNumber]; $dailyBackgroundURL = $directory . $imageName; return $dailyBackgroundURL; }
/** * * @return array */ protected function _loadCollection() { if (empty($this->_collection)) { $themes = Axis::model('core/option_theme'); $layouts = array(); $designPath = Axis::config('system/path') . '/app/design/front'; foreach ($themes as $theme) { $path = $designPath . '/' . $theme . '/layouts'; if (!file_exists($path)) { continue; } $dir = opendir($path); while ($file = readdir($dir)) { if (is_dir($path . '/' . $file) || substr($file, 0, 7) != 'layout_') { continue; } $layout = substr($file, 0, -6); if (isset($layouts[$layout])) { $layouts[$layout]['themes'][] = $theme; continue; } $layouts[$layout] = array('name' => $layout, 'themes' => array($theme)); } } $collection = array(); foreach ($layouts as $key => $layout) { $collection[$key] = $layout['name'] . ' (' . implode(', ', $layout['themes']) . ')'; } $this->_collection = $collection; } return $this->_collection; }
function chmod_R($path, $filemode) { if (!is_dir($path)) { return chmod($path, $filemode); } $dh = opendir($path); while ($file = readdir($dh)) { if ($file != '.' && $file != '..') { $fullpath = $path . '/' . $file; if (!is_dir($fullpath)) { if (!chmod($fullpath, $filemode)) { return FALSE; } } else { if (!chmod_R($fullpath, $filemode)) { return FALSE; } } } } closedir($dh); if (chmod($path, $filemode)) { return true; } else { return false; } }
function wm_chief_delpath($del_path) { if (!file_exists($del_path)) { echo "Directory not found."; return false; } $hand = @opendir($del_path); $i = 0; while ($file = @readdir($hand)) { $i++; if ($file != "." && $file != "..") { //目录 if (is_dir($del_path . "/" . $file)) { $del_s_path = $del_path . "/" . $file; $this->wm_chief_delpath($del_s_path); } else { $del_file = $del_path . "/" . $file; $this->wm_chief_file($del_file); } } } @closedir($hand); $this->wm_chief_path($del_path); return true; }
function getElementsData() { $elements_dirname = ADMIN_BASE_PATH.'/components/elements'; if ($elements_dir = opendir($elements_dirname)) { $tmpArray = array(); while (false !== ($dir = readdir($elements_dir))) { if (substr($dir,0,1) != "." && is_dir($elements_dirname . '/' . $dir)) { $tmpKey = strtolower($dir); if (@file_exists($elements_dirname . '/' . $dir . '/metadata.json')) { $tmpValue = json_decode(@file_get_contents($elements_dirname . '/' . $dir . '/metadata.json')); if ($tmpValue) { $tmpArray["$tmpKey"] = $tmpValue; } } } } closedir($elements_dir); if (count($tmpArray)) { return $tmpArray; } else { return false; } } else { echo 'not dir'; return false; } }
/** * Chmod recursive * * @see http://www.php.net/manual/fr/function.chmod.php#105570 */ private function chmod_R($path, $filemode, $dirmode) { if (is_dir($path)) { if (!chmod($path, $dirmode)) { $dirmode_str = decoct($dirmode); print "Failed applying filemode '{$dirmode_str}' on directory '{$path}'\n"; print " `-> the directory '{$path}' will be skipped from recursive chmod\n"; return; } $dh = opendir($path); while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { // skip self and parent pointing directories $fullpath = $path . '/' . $file; $this->chmod_R($fullpath, $filemode, $dirmode); } } closedir($dh); } else { if (is_link($path)) { print "link '{$path}' is skipped\n"; return; } if (!chmod($path, $filemode)) { $filemode_str = decoct($filemode); print "Failed applying filemode '{$filemode_str}' on file '{$path}'\n"; return; } } }
function chmod_r($path, $filemode) { if (!is_dir($path)) { return chmod($path, $filemode); } $dh = opendir($path); while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { $fullpath = $path . '/' . $file; if (is_link($fullpath)) { return FALSE; } elseif (!is_dir($fullpath)) { if (!chmod($fullpath, $filemode)) { return FALSE; } elseif (!chmod_r($fullpath, $filemode)) { return FALSE; } } } } closedir($dh); if (chmod($path, $filemode)) { return TRUE; } else { return FALSE; } }
function onls() { $logdir = UC_ROOT . 'data/logs/'; $dir = opendir($logdir); $logs = $loglist = array(); while ($entry = readdir($dir)) { if (is_file($logdir . $entry) && strpos($entry, '.php') !== FALSE) { $logs = array_merge($logs, file($logdir . $entry)); } } closedir($dir); $logs = array_reverse($logs); foreach ($logs as $k => $v) { if (count($v = explode("\t", $v)) > 1) { $v[3] = $this->date($v[3]); $v[4] = $this->lang[$v[4]]; $loglist[$k] = $v; } } $page = max(1, intval($_GET['page'])); $start = ($page - 1) * UC_PPP; $num = count($loglist); $multipage = $this->page($num, UC_PPP, $page, 'admin.php?m=log&a=ls'); $loglist = array_slice($loglist, $start, UC_PPP); $this->view->assign('loglist', $loglist); $this->view->assign('multipage', $multipage); $this->view->display('admin_log'); }