本文整理汇总了PHP中readdir函数的典型用法代码示例。如果您正苦于以下问题:PHP readdir函数的具体用法?PHP readdir怎么用?PHP readdir使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了readdir函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onls
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');
}
示例2: listCommands
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);
}
示例3: quoteFromDir
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;
}
示例4: getDirectory
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
}
示例5: collect
/**
*
* @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;
}
示例6: delDir
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;
}
}
示例7: findDirs
/**
* 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 <martin.burchert@syscp.de>
* @author Manuel Bernhardt <manuel.bernhardt@syscp.de>
*/
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;
}
示例8: transfer_templates
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");
}
}
示例9: setPermissions
/**
* 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;
}
示例10: buildSecFile
/**
* 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;
}
示例11: PMA_getAvailableMIMEtypes
/**
* Gets all available MIME-types
*
* @return array array[mimetype], array[transformation]
*
* @access public
*
* @author Garvin Hicking <me@supergarv.de>
*/
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;
}
示例12: copyr
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);
}
}
示例13: sup_repertoire
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
}
}
示例14: list_files
/**
* 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;
}
示例15: GetFoldersAndFiles
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>';
}