本文整理汇总了PHP中list_directories函数的典型用法代码示例。如果您正苦于以下问题:PHP list_directories函数的具体用法?PHP list_directories怎么用?PHP list_directories使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了list_directories函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CreateThemesList
function CreateThemesList()
{
global $gl_root_path, $content;
$alldirectories = list_directories($gl_root_path . "themes/");
for ($i = 0; $i < count($alldirectories); $i++) {
// Init Theme Settings
$themename = $alldirectories[$i];
$content['STYLES'][$themename]['StyleName'] = $themename;
// Init stuff from abvout
InitThemeAbout($themename);
// Copy to userstyles array
$content['USERSTYLES'][$themename] = $content['STYLES'][$themename];
// --- web_theme
if ($content['web_theme'] == $themename) {
$content['STYLES'][$themename]['selected'] = "selected";
} else {
$content['STYLES'][$themename]['selected'] = "";
}
// ---
// --- user_theme
if ($content['user_theme'] == $themename) {
$content['USERSTYLES'][$themename]['is_selected'] = "selected";
} else {
$content['USERSTYLES'][$themename]['is_selected'] = "";
}
// ---
}
}
示例2: __construct
function __construct()
{
parent::Model();
$CI =& get_instance();
$CI->load->helper('directory');
$this->_dirs = list_directories($CI->asset->assets_server_path, $CI->config->item('assets_excluded_dirs', 'fuel'), FALSE, TRUE);
$this->_dir_filetypes = $CI->config->item('editable_asset_filetypes', 'fuel');
$CI->load->helper('directory');
$CI->load->helper('file');
$this->validator = new Validator();
$this->validator->register_to_global_errors = FALSE;
}
示例3: CreateThemesList
function CreateThemesList()
{
global $gl_root_path, $content;
$alldirectories = list_directories($gl_root_path . "themes/");
for ($i = 0; $i < count($alldirectories); $i++) {
// --- web_theme
$content['STYLES'][$i]['StyleName'] = $alldirectories[$i];
if ($content['web_theme'] == $alldirectories[$i]) {
$content['STYLES'][$i]['selected'] = "selected";
} else {
$content['STYLES'][$i]['selected'] = "";
}
// ---
// --- user_theme
$content['USERSTYLES'][$i]['StyleName'] = $alldirectories[$i];
if ($content['user_theme'] == $alldirectories[$i]) {
$content['USERSTYLES'][$i]['is_selected'] = "selected";
} else {
$content['USERSTYLES'][$i]['is_selected'] = "";
}
// ---
}
}
示例4: backup_copy_group_files
function backup_copy_group_files($preferences)
{
global $CFG;
$status = true;
//First we check if "group_files" exists and create it as necessary
//in temp/backup/$backup_code dir
$status = check_and_create_group_files_dir($preferences->backup_unique_code);
//Now iterate over directories under "groups" to check if that user must be
//copied to backup
$rootdir = $CFG->dataroot . '/groups';
//Check if directory exists
if (is_dir($rootdir)) {
$list = list_directories($rootdir);
if ($list) {
//Iterate
foreach ($list as $dir) {
//Look for dir like group in groups table
$data = get_record('groups', 'courseid', $preferences->backup_course, 'id', $dir);
//If exists, copy it
if ($data) {
$status = backup_copy_file($rootdir . "/" . $dir, $CFG->dataroot . "/temp/backup/" . $preferences->backup_unique_code . "/group_files/" . $dir);
}
}
}
}
return $status;
}
示例5: restore_group_files
function restore_group_files($restore)
{
global $CFG;
$status = true;
$counter = 0;
//First, we check to "groups" exists and create is as necessary
//in CFG->dataroot
$dest_dir = $CFG->dataroot . '/groups';
$status = check_dir_exists($dest_dir, true);
//Now, we iterate over "group_files" records to check if that user dir must be
//copied (and renamed) to the "groups" dir.
$rootdir = $CFG->dataroot . "/temp/backup/" . $restore->backup_unique_code . "/group_files";
//Check if directory exists
if (is_dir($rootdir)) {
$list = list_directories($rootdir);
if ($list) {
//Iterate
$counter = 0;
foreach ($list as $dir) {
//Look for dir like groupid in backup_ids
$data = get_record("backup_ids", "backup_code", $restore->backup_unique_code, "table_name", "groups", "old_id", $dir);
//If that group exists in backup_ids
if ($data) {
if (!file_exists($dest_dir . "/" . $data->new_id)) {
$status = backup_copy_file($rootdir . "/" . $dir, $dest_dir . "/" . $data->new_id, true);
$counter++;
}
//Do some output
if ($counter % 2 == 0) {
if (!defined('RESTORE_SILENTLY')) {
echo ".";
if ($counter % 40 == 0) {
echo "<br />";
}
}
backup_flush(300);
}
}
}
}
}
//If status is ok and whe have dirs created, returns counter to inform
if ($status and $counter) {
return $counter;
} else {
return $status;
}
}
示例6: CopyFiles
/**
* CopyFiles
* @return Void Returns nothing
*/
function CopyFiles()
{
if (SENDSTUDIO_SAFE_MODE) {
?>
<script>
self.parent.parent.location = 'index.php?Page=Upgrade&Step=3';
</script>
<?php
return;
}
$dirs_to_copy = IEM::sessionGet('DirectoriesToCopy');
if (!$dirs_to_copy) {
$dirs_to_copy = list_directories($GLOBALS['ROOTDIR'] . 'temp/images', null, true);
IEM::sessionSet('DirectoriesToCopy', $dirs_to_copy);
$dirs_copied = array();
IEM::sessionSet('DirectoriesCopied', $dirs_copied);
$dirs_not_copied = array();
IEM::sessionSet('DirectoriesNotCopied', $dirs_not_copied);
}
$dirs_to_copy = IEM::sessionGet('DirectoriesToCopy');
$dirs_copied = IEM::sessionGet('DirectoriesCopied');
// Check if there is anything to copy
if (count($dirs_to_copy) == 0) {
?>
<script>
self.parent.parent.location = 'index.php?Page=Upgrade&Step=3';
</script>
<?php
}
if ($dirs_to_copy == $dirs_copied) {
// copy attachments last. there won't be too many of these so we'll do it all in one step.
$all_attachments = array();
$query = "SELECT AttachmentID, AttachmentFilename, AttachmentName FROM " . $GLOBALS['TABLEPREFIX'] . "attachments";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$all_attachments[$row['AttachmentID']] = array('filename' => $row['AttachmentFilename'], 'realname' => $row['AttachmentName']);
}
if (!empty($all_attachments)) {
$query = "select ComposedID, AttachmentIDs from " . $GLOBALS['TABLEPREFIX'] . "composed_emails where attachmentids != ''";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$new_folder = TEMP_DIRECTORY . '/newsletters/' . $row['ComposedID'];
CreateDirectory($new_folder);
$attachments = explode(':', stripslashes($row['AttachmentIDs']));
foreach ($attachments as $k => $attachid) {
$fname = basename($all_attachments[$attachid]['filename']);
$file = $GLOBALS['ROOTDIR'] . 'temp/attachments/' . $fname;
$realname = $all_attachments[$attachid]['realname'];
copy($file, $new_folder . '/' . $realname);
if (!SENDSTUDIO_SAFE_MODE) {
@chmod($new_folder . '/' . $realname, 0644);
}
}
}
$query = "select AutoresponderID, AttachmentIDs from " . $GLOBALS['TABLEPREFIX'] . "autoresponders where attachmentids != ''";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$new_folder = TEMP_DIRECTORY . '/autoresponders/' . $row['ComposedID'];
CreateDirectory($new_folder);
$attachments = explode(':', stripslashes($row['AttachmentIDs']));
foreach ($attachments as $k => $attachid) {
$fname = basename($all_attachments[$attachid]['filename']);
$file = $GLOBALS['ROOTDIR'] . 'temp/attachments/' . $fname;
$realname = $all_attachments[$attachid]['realname'];
copy($file, $new_folder . '/' . $realname);
if (!SENDSTUDIO_SAFE_MODE) {
@chmod($new_folder . '/' . $realname, 0644);
}
}
}
}
?>
<script>
self.parent.parent.location = 'index.php?Page=Upgrade&Step=3';
</script>
<?php
return;
}
$listProcessed = count($dirs_copied);
$listTotal = count($dirs_to_copy);
$percentProcessed = 0;
//.........这里部分代码省略.........
示例7: list_directories
/**
* Lists the directories only from a give directory
*
* @access public
* @param string
* @param mixed
* @param boolean
* @param boolean
* @param boolean
* @return array
*/
function list_directories($directory, $exclude = array(), $full_path = TRUE, $is_writable = FALSE, $_first_time = TRUE)
{
static $orig_directory;
static $dirs;
if ($_first_time) {
$orig_directory = $directory;
}
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if (strncmp($file, '.', 1) !== 0 and (is_array($exclude) and !in_array($file, $exclude) or is_string($exclude) and !empty($exclude) and !preg_match($exclude, $file))) {
$file_path = $directory . "/" . $file;
if (is_dir($file_path)) {
if ($is_writable and !is_writable($file_path)) {
continue;
}
$dir_prefix = !$full_path ? substr($directory, strlen($orig_directory)) : $directory;
$dir = $dir_prefix . "/" . $file;
$dir = str_replace("//", "/", $dir);
// replace double slash
if (substr($dir, 0, 1) == '/') {
$dir = substr($dir, 1);
}
// remove begining slash
if (!isset($dirs)) {
$dirs = array();
}
if (!in_array($dir, $dirs)) {
$dirs[] = $dir;
}
list_directories($file_path, $exclude, $full_path, $is_writable, FALSE);
}
}
}
closedir($handle);
}
return $dirs;
}
示例8: GetUpgradesToRun
/**
* GetUpgradesToRun
* @param String $current_version Current version
* @param String $latest Latest version
* @return Array Returns an array of upgrade to be performed
*/
function GetUpgradesToRun($current_version=0, $latest=0)
{
if ($current_version == $latest) {
return array('upgrades' => array(), 'number_to_run' => 0);
}
$dirs = list_directories(IEM_PATH . '/upgrades');
$upgrades_to_run = array();
$number_to_run = 0;
/**
* If the current version is '2004'
* we need to include the 'nx' upgrades before anything else.
*/
if ($current_version == '2004') {
$upgrades = $this->upgrades_to_run['nx'];
$upgrades_to_run['nx'] = $upgrades;
$number_to_run += sizeof($upgrades);
}
foreach ($dirs as $p => $dir) {
$dirname = str_replace(IEM_PATH . '/upgrades/', '', $dir);
/**
* If the directory isn't a numeric folder name, check the current version.
* If the current version is '2004', then we need to include the 'nx' folder.
* If the current version is NOT nx, then skip non-numeric folders.
*/
if (!is_numeric($dirname)) {
continue;
}
/**
* If we are mid-way through database changes, ie:
* - our version is '2'
* and there are upgrades for 1,2,3
* we want to skip any that are before our current version.
*/
if ($dirname <= $current_version) {
continue;
}
$upgrades = $this->upgrades_to_run[$dirname];
$upgrades_to_run[$dirname] = $upgrades;
$number_to_run += sizeof($upgrades);
}
return array('upgrades' => $upgrades_to_run, 'number_to_run' => $number_to_run);
}
示例9: list_directories
/**
* Lists the directories only from a give directory
*
* @access public
* @param string
* @param mixed
* @param boolean
* @param boolean
* @param boolean
* @param boolean
* @return array
*/
function list_directories($directory, $exclude = array(), $full_path = TRUE, $is_writable = FALSE, $recursive = TRUE, $_first_time = TRUE)
{
static $orig_directory;
static $dirs;
if ($_first_time) {
$orig_directory = rtrim($directory, '/');
$dirs = NULL;
}
if ($handle = opendir($directory)) {
while (FALSE !== ($file = readdir($handle))) {
if (strncmp($file, '.', 1) !== 0 and (is_array($exclude) and !in_array($file, $exclude) or is_string($exclude) and !empty($exclude) and !preg_match($exclude, $file))) {
$file_path = $directory . "/" . $file;
if (is_dir($file_path)) {
if ($is_writable and !is_writable($file_path)) {
continue;
}
if (!$full_path) {
$dir_prefix = substr($directory, strlen($orig_directory));
$dir = trim($dir_prefix . "/" . $file, '/');
} else {
$dir_prefix = $directory;
$dir = $dir_prefix . "/" . $file;
}
$dir = str_replace("//", "/", $dir);
// replace double slash
if (!isset($dirs)) {
$dirs = array();
}
if (!empty($dir) and !in_array($dir, $dirs)) {
$dirs[] = $dir;
}
if ($recursive) {
list_directories($file_path, $exclude, $full_path, $is_writable, TRUE, FALSE);
}
}
}
}
closedir($handle);
}
return $dirs;
}
示例10: root_dirs
/**
* Returns an array of the main root asset folders
*
* @access public
* @return array
*/
public function root_dirs($full_path = FALSE)
{
$asset_server_path = $this->CI->asset->assets_server_path();
$dirs = list_directories($asset_server_path, array(), $full_path, FALSE, FALSE);
if (!empty($dirs)) {
$dirs = array_combine($dirs, $dirs);
}
ksort($dirs);
return $dirs;
}
示例11: form_fields
function form_fields($values = null)
{
$CI =& get_instance();
$CI->load->helper('directory');
$fields = parent::form_fields();
unset($fields['super_admin']);
// save reference it so we can reorder
$pwd_field = $fields['password'];
unset($fields['password']);
$user_id = NULL;
if (!empty($values['id']))
{
$user_id = $values['id'];
}
if (!empty($user_id))
{
$fields['new_password'] = array('label' => lang('form_label_new_password'), 'type' => 'password', 'size' => 20, 'order' => 5);
}
else
{
$pwd_field['type'] = 'password';
$pwd_field['size'] = 20;
$pwd_field['order'] = 5;
$fields['password']= $pwd_field;
}
$lang_dirs = list_directories(FUEL_PATH.'language/', array(), FALSE);
$lang_options = array_combine($lang_dirs, $lang_dirs);
if (count($lang_options) >= 2)
{
$fields['language'] = array('type' => 'select', 'options' => $lang_options, 'value' => 'english');
}
else
{
$fields['language']['type'] = 'hidden';
}
$fields['user_name']['order'] = 1;
$fields['email']['order'] = 2;
$fields['first_name']['order'] = 3;
$fields['last_name']['order'] = 4;
$fields['confirm_password'] = array('label' => lang('form_label_confirm_password'), 'type' => 'password', 'size' => 20, 'order' => 6);
$fields['active']['order'] = 8;
// get permissions
$CI =& get_instance();
$perm_fields = array();
$user = $CI->fuel_auth->user_data();
//if (($CI->fuel_auth->is_super_admin() AND ($user['id'] != $user_id)) AND (!empty($values['super_admin']) AND $values['super_admin'] != 'yes'))
if (($CI->fuel_auth->is_super_admin() AND ($user['id'] != $user_id))
OR (!$CI->fuel_auth->is_super_admin() AND $CI->fuel_auth->has_permission('permissions'))
)
{
$CI->load->module_model(FUEL_FOLDER, 'user_to_permissions_model');
$selected_perms = $CI->user_to_permissions_model->get_permissions($user_id, FALSE);
// if (!empty($selected_perms))
// {
$fields[lang('permissions_heading')] = array('type' => 'section', 'order' => 10);
// }
$CI->load->module_model(FUEL_FOLDER, 'permissions_model');
$perms = $CI->permissions_model->find_all_array(array('active' => 'yes'), 'name asc');
$order = 11;
foreach($perms as $val)
{
$perm_field = 'permissions_'.$val['id'];
$perm_fields[$perm_field]['type'] = 'checkbox';
$perm_fields[$perm_field]['value'] = $val['id'];
$perm_fields[$perm_field]['order'] = $order;
$label = lang('perm_'.$val['name']);
if (empty($label))
{
$label = (!empty($val['description'])) ? $val['description'] : $val['name'];
}
$perm_fields[$perm_field]['label'] = $label;
if (!empty($selected_perms[$val['id']])) $perm_fields[$perm_field]['checked'] = TRUE;
$order++;
}
}
$fields = array_merge($fields, $perm_fields);
unset($fields['reset_key']);
return $fields;
}
示例12: form_fields
/**
* User form fields
*
* @access public
* @param array Values of the form fields (optional)
* @param array An array of related fields. This has been deprecated in favor of using has_many and belongs to relationships (deprecated)
* @return array An array to be used with the Form_builder class
*/
public function form_fields($values = array(), $related = array())
{
$CI =& get_instance();
$CI->load->helper('directory');
$fields = parent::form_fields($values, $related);
unset($fields['super_admin']);
// save reference it so we can reorder
$pwd_field = $fields['password'];
unset($fields['password']);
$user_id = NULL;
if (!empty($values['id'])) {
$user_id = $values['id'];
}
$fields['confirm_password'] = array('label' => lang('form_label_confirm_password'), 'type' => 'password', 'size' => 20, 'order' => 6);
if (!empty($user_id)) {
$fields['new_password'] = array('label' => lang('form_label_new_password'), 'type' => 'password', 'size' => 20, 'order' => 5);
} else {
$pwd_field['type'] = 'password';
$pwd_field['size'] = 20;
$pwd_field['order'] = 5;
//$fields['password']= $pwd_field;
$fields['new_password'] = array('label' => lang('form_label_password'), 'type' => 'password', 'size' => 20, 'order' => 5, 'required' => TRUE);
$fields['confirm_password']['required'] = TRUE;
}
$lang_dirs = list_directories(FUEL_PATH . 'language/', array(), FALSE);
$lang_options = array_combine($lang_dirs, $lang_dirs);
if (count($lang_options) >= 2) {
$fields['language'] = array('type' => 'select', 'options' => $lang_options, 'value' => 'english');
} else {
$fields['language']['type'] = 'hidden';
}
$fields['user_name']['order'] = 1;
$fields['email']['order'] = 2;
$fields['first_name']['order'] = 3;
$fields['last_name']['order'] = 4;
$fields['active']['order'] = 8;
// get permissions
$CI =& get_instance();
$perm_fields = array();
$user = $CI->fuel->auth->user_data();
//if you are a super admin or a user that has permissions to assign permissions and you are not editing yourself, then display the permissions
if ($CI->fuel->auth->has_permission('permissions') and ($user['id'] != $user_id and (!empty($values['super_admin']) and $values['super_admin'] != 'yes') or $CI->fuel->auth->has_permission('permissions') and empty($values['id']))) {
$fields[lang('permissions_heading')] = array('type' => 'section', 'order' => 10);
$fields['permissions'] = array('type' => 'custom', 'func' => array($this, '_create_permission_fields'), 'order' => 11, 'user_id' => isset($values['id']) ? $values['id'] : '');
$fields['permissions']['mode'] = 'checkbox';
$fields['permissions']['display_label'] = FALSE;
$fields['permissions']['wrapper_tag'] = 'div';
$fields['exists_permissions'] = array('type' => 'hidden', 'value' => 1);
} else {
unset($fields['permissions']);
}
//$fields = array_merge($fields, $perm_fields);
unset($fields['reset_key'], $fields['salt']);
return $fields;
}
示例13: list_directories
/**
* list_directories
* Lists directories under a particular tree. Can also skip particular directory names of files.
*
* @param String $dir Name of directory to list directories for.
* @param Array $skip_dirs Directory names to skip. Can be a single name or an array.
* @param Boolean $recursive Whether to recursively list directories or not. Default is no.
*
* @return Mixed Returns false if it can't open a directory, else it returns a multi-dimensional array.
*/
function list_directories($dir='', $skip_dirs = null, $recursive=false)
{
if (empty($dir) || !is_dir($dir)) {
return false;
}
$file_list = array();
if (substr($dir, -1) == '/') {
$dir = substr($dir, 0, -1);
}
// need to use the '@' in case we can't open the directory
// otherwise it still throws a notice.
if (!$handle = @opendir($dir)) {
return false;
}
while (($file = readdir($handle)) !== false) {
if ($file == '.' || $file == '..') {
continue;
}
if (is_dir($dir.'/'.$file) && !isset($file_list[$file])) {
$file_list[] = $dir . '/' . $file;
if ($recursive) {
$subdir = list_directories($dir.'/'.$file, $skip_dirs, $recursive);
if (!empty($subdir)) {
foreach ($subdir as $p => $subdirname) {
$file_list[] = $subdirname;
}
}
}
}
}
closedir($handle);
if (!$recursive) {
natcasesort($file_list);
}
return $file_list;
}
示例14: MoveFiles
/**
* MoveFiles
* Moves uploaded images from temporary storage under a user's id - to it's final location - under the type and it's id. Eg newsletter/1.
*
* @param String $destination The destination (eg newsletter or template).
* @param Int $id The destinations id.
*
* @see CreateDirectory
* @see list_files
*
* @return Boolean Returns false if it can't create the paths or it can't copy the necessary files. Returns true if everything worked ok.
*/
function MoveFiles($destination = false, $id = 0)
{
if (!$destination || !$id) {
return false;
}
$destinationdir = TEMP_DIRECTORY . '/' . $destination . '/' . $id;
$createdir = CreateDirectory($destinationdir);
if (!$createdir) {
return false;
}
$user = IEM::getCurrentUser();
$sourcedir = TEMP_DIRECTORY . '/user/' . $user->userid;
$file_list = list_files($sourcedir);
$dir_list = list_directories($sourcedir);
if (empty($file_list) && empty($dir_list)) {
return true;
}
$result = true;
foreach ($file_list as $p => $filename) {
if (!copy($sourcedir . '/' . $filename, $destinationdir . '/' . $filename)) {
$result = false;
}
}
if ($result) {
foreach ($dir_list as $dir) {
$dirname = str_replace($sourcedir, '', $dir);
if ($dirname == 'attachments') {
continue;
}
$copy_dir_result = CopyDirectory($dir, $destinationdir . $dirname);
if (!$copy_dir_result) {
$resut = false;
}
}
}
return $result;
}