本文整理汇总了PHP中RecursiveIteratorIterator::getPathname方法的典型用法代码示例。如果您正苦于以下问题:PHP RecursiveIteratorIterator::getPathname方法的具体用法?PHP RecursiveIteratorIterator::getPathname怎么用?PHP RecursiveIteratorIterator::getPathname使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RecursiveIteratorIterator
的用法示例。
在下文中一共展示了RecursiveIteratorIterator::getPathname方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: delete
public function delete()
{
if (!$this->loadData()) {
$this->dataError();
sendBack();
}
$moduleobject = $this->_uses[$this->modeltype];
$db = DB::Instance();
$db->StartTrans();
if ($moduleobject->isLoaded()) {
$modulename = $moduleobject->name;
$modulelocation = FILE_ROOT . $moduleobject->location;
if ($moduleobject->enabled && !$moduleobject->disable()) {
$errors[] = 'Failed to disable module';
}
if ($moduleobject->registered && !$moduleobject->unregister()) {
$errors[] = 'Failed to unregister module';
}
if (!$moduleobject->delete()) {
$errors[] = 'Failed to delete module';
} else {
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($modulelocation), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
rmdir($dir->getPathname());
} else {
unlink($dir->getPathname());
}
}
rmdir($modulelocation);
}
} else {
$errors[] = 'Cannot find module';
}
$flash = Flash::Instance();
if (count($errors) > 0) {
$db->FailTrans();
$flash->addErrors($errors);
if (isset($this->_data['id'])) {
$db->CompleteTrans();
sendTo($this->name, 'view', $this->_modules, array('id' => $this->_data['id']));
}
} else {
$flash->addMessage('Module ' . $modulename . ' deleted OK');
}
$db->CompleteTrans();
sendTo($this->name, 'index', $this->_modules);
}
示例2: explode
$tmp = explode("/", Params::getParam('file'));
$filename = end($tmp);
osc_downloadFile(Params::getParam('file'), $filename);
$message = __('File downloaded correctly');
} else {
$message = __('Missing filename');
}
break;
case 'empty-temp':
$message = __("Removing temp-directory");
$path = ABS_PATH . 'oc-temp';
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
rmdir($dir->getPathname());
}
} else {
unlink($dir->getPathname());
}
}
rmdir($path);
break;
case 'db-backup':
osc_dbdump();
break;
case 'zip-osclass':
$archive_name = ABS_PATH . "OSClass_backup." . date('YmdHis') . ".zip";
$archive_folder = ABS_PATH;
if (osc_zip_folder($archive_folder, $archive_name)) {
$message = __('Archiving is sucessful!');
示例3: doModel
//.........这里部分代码省略.........
// Everything is OK, continue
/************************
*** UPGRADE DATABASE ***
************************/
$error_queries = array();
if (file_exists(osc_lib_path() . 'osclass/installer/struct.sql')) {
$sql = file_get_contents(osc_lib_path() . 'osclass/installer/struct.sql');
$conn = DBConnectionClass::newInstance();
$c_db = $conn->getOsclassDb();
$comm = new DBCommandClass($c_db);
$error_queries = $comm->updateDB(str_replace('/*TABLE_PREFIX*/', DB_TABLE_PREFIX, $sql));
}
if ($error_queries[0]) {
// Everything is OK, continue
/**********************************
** EXECUTING ADDITIONAL ACTIONS **
**********************************/
if (file_exists(osc_lib_path() . 'osclass/upgrade-funcs.php')) {
// There should be no errors here
define('AUTO_UPGRADE', true);
require_once osc_lib_path() . 'osclass/upgrade-funcs.php';
}
// Additional actions is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/****************************
** REMOVE TEMPORARY FILES **
****************************/
$path = ABS_PATH . 'oc-temp';
$rm_errors = 0;
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
if (!rmdir($dir->getPathname())) {
$rm_errors++;
}
}
} else {
if (!unlink($dir->getPathname())) {
$rm_errors++;
}
}
}
if (!rmdir($path)) {
$rm_errors++;
}
$deleted = @unlink(ABS_PATH . '.maintenance');
if ($rm_errors == 0) {
$message = __('Everything looks good! Your Osclass installation is up-to-date');
} else {
$message = __('Nearly everything looks good! Your Osclass installation is up-to-date, but there were some errors removing temporary files. Please manually remove the "oc-temp" folder');
$error = 6;
// Some errors removing files
}
} else {
$sql_error_msg = $error_queries[2];
$message = __('Problems when upgrading the database');
$error = 5;
// Problems upgrading the database
}
} else {
$message = __('Problems when copying files. Please check your permissions. ');
$error = 4;
// Problems copying files. Maybe permissions are not correct
}
} else {
示例4: getHash
/**
* Return the MD5 hash of the folder
*
* @return string The MD5 has
*/
protected function getHash()
{
$arrFiles = array();
$it = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator(TL_ROOT . '/' . $this->strFolder, \FilesystemIterator::UNIX_PATHS));
while ($it->valid()) {
if ($it->isFile() && $it->getFilename() != '.DS_Store') {
$arrFiles[] = $it->getSubPathname();
$arrFiles[] = md5_file($it->getPathname());
}
$it->next();
}
return md5(implode('-', $arrFiles));
}
示例5: makeCorrectDir
/*
* see if we have some php-fcgid leftovers if used
* and remove them, #200
*/
if ($settings['system']['mod_fcgid'] == 1) {
// e.g. /var/www/php-fcgi-starter/web1/
$configdir = makeCorrectDir($settings['system']['mod_fcgid_configdir'] . '/' . $row['data']['loginname'] . '/');
if (is_dir($configdir)) {
$its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($configdir));
// iterate through all subdirs,
// look for php-fcgi-starter files
// and take immutable-flag away from them
// so we can delete them :)
foreach ($its as $fullFileName => $it) {
if ($it->isFile() && $it->getFilename() == 'php-fcgi-starter') {
removeImmutable($its->getPathname());
}
}
// now get rid of old stuff
safe_exec('rm -rf ' . escapeshellarg($configdir));
}
}
}
}
} elseif ($row['type'] == '7') {
fwrite($debugHandler, ' cron_tasks: Task7 started - deleting customer e-mail data' . "\n");
$cronlog->logAction(CRON_ACTION, LOG_INFO, 'Task7 started - deleting customer e-mail data');
if (is_array($row['data'])) {
if (isset($row['data']['loginname']) && isset($row['data']['email'])) {
/*
* remove specific maildir
示例6: doModel
//.........这里部分代码省略.........
// Everything is OK, continue
/************************
*** UPGRADE DATABASE ***
************************/
$error_queries = array();
if (file_exists(osc_lib_path() . 'osclass/installer/struct.sql')) {
$sql = file_get_contents(osc_lib_path() . 'osclass/installer/struct.sql');
$conn = DBConnectionClass::newInstance();
$c_db = $conn->getOsclassDb();
$comm = new DBCommandClass($c_db);
$error_queries = $comm->updateDB(str_replace('/*TABLE_PREFIX*/', DB_TABLE_PREFIX, $sql));
}
if ($error_queries[0]) {
// Everything is OK, continue
/**********************************
** EXECUTING ADDITIONAL ACTIONS **
**********************************/
if (file_exists(osc_lib_path() . 'osclass/upgrade-funcs.php')) {
// There should be no errors here
define('AUTO_UPGRADE', true);
require_once osc_lib_path() . 'osclass/upgrade-funcs.php';
}
// Additional actions is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/****************************
** REMOVE TEMPORARY FILES **
****************************/
$path = ABS_PATH . 'oc-temp';
$rm_errors = 0;
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
if (!rmdir($dir->getPathname())) {
$rm_errors++;
}
}
} else {
if (!unlink($dir->getPathname())) {
$rm_errors++;
}
}
}
if (!rmdir($path)) {
$rm_errors++;
}
$deleted = @unlink(ABS_PATH . '.maintenance');
if ($rm_errors == 0) {
$message = __('Everything was OK! Your OSClass installation is updated');
} else {
$message = __('Almost everything was OK! Your OSClass installation is updated, but there were some errors removing temporary files. Please, remove manually the "oc-temp" folder');
$error = 6;
// Some errors removing files
}
} else {
$sql_error_msg = $error_queries[2];
$message = __('Problems upgrading the database');
$error = 5;
// Problems upgrading the database
}
} else {
$message = __('Problems copying files. Maybe permissions are not correct');
$error = 4;
// Problems copying files. Maybe permissions are not correct
}
} else {
示例7: copy_them
private function copy_them()
{
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->current_dir, FilesystemIterator::SKIP_DOTS));
while ($iterator->valid()) {
if ($iterator->isFile()) {
copy($iterator->getPathname(), $this->moved_dir . '/' . $iterator->getFilename());
}
$iterator->next();
}
}
示例8: Pimple
require 'vendor/autoload.php';
$config = (require 'config/application.php');
// Initialize all services in the container
$app = new Pimple();
$debug = $app['debug'] = isset($argv[1]) && $argv[1] === '--debug' || $config['debug'];
require 'src/services.php';
// Initialize index storage
$index = [];
// Clear sheet cache directory
$app['sheet_cache']->clear();
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('sheets/'));
$iterator->rewind();
while ($iterator->valid()) {
if (!$iterator->isDot()) {
$path = str_replace(['\\', '.xml'], ['/', ''], $iterator->getSubPathname());
$sheet = new SheetParser($path, $iterator->getPathname(), $config, $debug);
$meta = $sheet->parseMeta();
$content = $sheet->parseContent();
$index['sheets'][$path] = ['title' => $meta->title, 'summary' => $meta->summary, 'keywords' => $meta->keywords, 'category' => $iterator->getSubPath(), 'path' => $path];
$index['categories'][] = $iterator->getSubPath();
$app['sheet_cache']->write($path, $content);
unset($sheet, $path, $meta, $content);
}
$iterator->next();
}
$index['categories'] = array_unique($index['categories']);
$index['category_names'] = (require 'config/categories.php');
// Write index in JSON format
if ($debug) {
$jsonFlags = JSON_PRETTY_PRINT;
} else {
示例9: doModel
//.........这里部分代码省略.........
}
}
// Removing files is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/************************
*** UPGRADE DATABASE ***
************************/
$error_queries = array();
if (file_exists(osc_lib_path() . 'osclass/installer/struct.sql')) {
$sql = file_get_contents(osc_lib_path() . 'osclass/installer/struct.sql');
$conn = getConnection();
$error_queries = $conn->osc_updateDB(str_replace('/*TABLE_PREFIX*/', DB_TABLE_PREFIX, $sql));
}
if ($error_queries[0]) {
// Everything is OK, continue
/**********************************
** EXECUTING ADDITIONAL ACTIONS **
**********************************/
if (file_exists(osc_lib_path() . 'osclass/upgrade-funcs.php')) {
// There should be no errors here
require_once osc_lib_path() . 'osclass/upgrade-funcs.php';
}
// Additional actions is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/****************************
** REMOVE TEMPORARY FILES **
****************************/
$path = ABS_PATH . 'oc-temp';
$rm_errors = 0;
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
if (!rmdir($dir->getPathname())) {
$rm_errors++;
}
}
} else {
if (!unlink($dir->getPathname())) {
$rm_errors++;
}
}
}
if (!rmdir($path)) {
$rm_errors++;
}
if ($rm_errors == 0) {
$message = __('Everything was OK! Your OSClass installation is updated');
} else {
$message = __('Almost everything was OK! Your OSClass installation is updated, but there were some errors removing temporary files. Please, remove manually the "oc-temp" folder', 'admin');
$error = 6;
// Some errors removing files
}
} else {
$sql_error_msg = $error_queries[2];
$message = __('Problems upgrading the database', 'admin');
$error = 5;
// Problems upgrading the database
}
} else {
$message = __('Problems copying files. Maybe permissions are not correct', 'admin');
$error = 4;
// Problems copying files. Maybe permissions are not correct
}
} else {
$message = __('Nothing to copy', 'admin');
示例10: execute
public static function execute($params)
{
// Set progress
Ai1wm_Status::info(__('Retrieving a list of all WordPress files...', AI1WM_PLUGIN_NAME));
// Set exclude filters
$exclude_filters = ai1wm_content_filters();
// Exclude cache
if (isset($params['options']['no_cache'])) {
$exclude_filters[] = 'cache';
}
// Exclude themes
if (isset($params['options']['no_themes'])) {
$exclude_filters[] = 'themes';
} else {
$inactive_themes = array();
// Exclude inactive themes
if (isset($params['options']['no_inactive_themes'])) {
foreach (wp_get_themes() as $theme => $info) {
// Exclude current parent and child themes
if (!in_array($theme, array(get_template(), get_stylesheet()))) {
$inactive_themes[] = 'themes' . DIRECTORY_SEPARATOR . $theme;
}
}
}
// Set exclude filters
$exclude_filters = array_merge($exclude_filters, $inactive_themes);
}
// Exclude plugins
if (isset($params['options']['no_plugins'])) {
$exclude_filters = array_merge($exclude_filters, array('plugins', 'mu-plugins'));
} else {
$inactive_plugins = array();
// Exclude inactive plugins
if (isset($params['options']['no_inactive_plugins'])) {
foreach (get_plugins() as $basename => $plugin) {
if (is_plugin_inactive($basename)) {
if (dirname($basename) === '.') {
$inactive_plugins[] = 'plugins' . DIRECTORY_SEPARATOR . basename($basename);
} else {
$inactive_plugins[] = 'plugins' . DIRECTORY_SEPARATOR . dirname($basename);
}
}
}
}
// Set exclude filters
$exclude_filters = array_merge($exclude_filters, ai1wm_plugin_filters($inactive_plugins));
}
// Exclude media
if (isset($params['options']['no_media'])) {
$exclude_filters = array_merge($exclude_filters, array('uploads', 'blogs.dir'));
}
// Get total files
if (isset($params['total_files'])) {
$total_files = (int) $params['total_files'];
} else {
$total_files = 0;
}
// Get total size
if (isset($params['total_size'])) {
$total_size = (int) $params['total_size'];
} else {
$total_size = 0;
}
// Create map file
$filemap = fopen(ai1wm_filemap_path($params), 'a+');
try {
// Iterate over content directory
$iterator = new Ai1wm_Recursive_Directory_Iterator(WP_CONTENT_DIR);
// Exclude uploads, plugins or themes
$iterator = new Ai1wm_Recursive_Exclude_Filter($iterator, apply_filters('ai1wm_exclude_content_from_export', $exclude_filters));
// Recursively iterate over content directory
$iterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD);
// Write path line
foreach ($iterator as $item) {
if ($item->isFile()) {
if (fwrite($filemap, $iterator->getSubPathName() . PHP_EOL)) {
$total_files++;
// Add current file size
$total_size += filesize($iterator->getPathname());
}
}
}
} catch (Exception $e) {
// Skip bad file permissions
}
// Set total files
$params['total_files'] = $total_files;
// Set total size
$params['total_size'] = $total_size;
// Close the filemap file
fclose($filemap);
// Set progress
Ai1wm_Status::info(__('Done retrieving a list of all WordPress files.', AI1WM_PLUGIN_NAME));
return $params;
}
示例11: osc_market
function osc_market($section, $code)
{
$plugin = false;
$re_enable = false;
$message = "";
$data = array();
$download_post_data = array('api_key' => osc_market_api_connect());
/************************
*** CHECK VALID CODE ***
************************/
if ($code != '' && $section != '') {
if (stripos($code, "http://") === FALSE) {
// OSCLASS OFFICIAL REPOSITORY
$url = osc_market_url($section, $code);
$data = osc_file_get_contents($url, array('api_key' => osc_market_api_connect()));
$data = json_decode(osc_file_get_contents($url, array('api_key' => osc_market_api_connect())), true);
} else {
// THIRD PARTY REPOSITORY
if (osc_market_external_sources()) {
$download_post_data = array();
$data = json_decode(osc_file_get_contents($code), true);
} else {
return array('error' => 9, 'message' => __('No external sources are allowed'), 'data' => $data);
}
}
/***********************
**** DOWNLOAD FILE ****
***********************/
if (isset($data['s_update_url']) && isset($data['s_source_file']) && isset($data['e_type'])) {
if ($data['e_type'] == 'THEME') {
$folder = 'themes/';
} else {
if ($data['e_type'] == 'LANGUAGE') {
$folder = 'languages/';
} else {
// PLUGINS
$folder = 'plugins/';
$plugin = Plugins::findByUpdateURI($data['s_update_url']);
if ($plugin != false) {
if (Plugins::isEnabled($plugin)) {
Plugins::runHook($plugin . '_disable');
Plugins::deactivate($plugin);
$re_enable = true;
}
}
}
}
$filename = date('YmdHis') . "_" . osc_sanitize_string($data['s_title']) . "_" . $data['s_version'] . ".zip";
$url_source_file = $data['s_source_file'];
$result = osc_downloadFile($url_source_file, $filename, $download_post_data);
if ($result) {
// Everything is OK, continue
/**********************
***** UNZIP FILE *****
**********************/
@mkdir(osc_content_path() . 'downloads/oc-temp/');
$res = osc_unzip_file(osc_content_path() . 'downloads/' . $filename, osc_content_path() . 'downloads/oc-temp/');
if ($res == 1) {
// Everything is OK, continue
/**********************
***** COPY FILES *****
**********************/
$fail = -1;
if ($handle = opendir(osc_content_path() . 'downloads/oc-temp')) {
$folder_dest = ABS_PATH . "oc-content/" . $folder;
if (function_exists('posix_getpwuid')) {
$current_user = posix_getpwuid(posix_geteuid());
$ownerFolder = posix_getpwuid(fileowner($folder_dest));
}
$fail = 0;
while (false !== ($_file = readdir($handle))) {
if ($_file != '.' && $_file != '..') {
$copyprocess = osc_copy(osc_content_path() . "downloads/oc-temp/" . $_file, $folder_dest . $_file);
if ($copyprocess == false) {
$fail = 1;
}
}
}
closedir($handle);
// Additional actions is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
// Also remove the zip package
/****************************
** REMOVE TEMPORARY FILES **
****************************/
@unlink(osc_content_path() . 'downloads/' . $filename);
$path = osc_content_path() . 'downloads/oc-temp';
$rm_errors = 0;
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
if (!rmdir($dir->getPathname())) {
$rm_errors++;
}
}
} else {
if (!unlink($dir->getPathname())) {
$rm_errors++;
}
//.........这里部分代码省略.........
示例12: _cleanFcgidFiles
/**
* remove fcgid related configuration files before regeneration
*
* @return null
*/
private function _cleanFcgidFiles()
{
if (Settings::Get('system.mod_fcgid') == '0') {
return;
}
// get correct directory
$configdir = $this->_getFile('system', 'mod_fcgid_configdir');
if ($configdir !== false) {
$configdir = makeCorrectDir($configdir);
if (@is_dir($configdir)) {
// create directory iterator
$its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($configdir));
// iterate through all subdirs,
// look for php-fcgi-starter files
// and take immutable-flag away from them
// so we can delete them :)
foreach ($its as $fullFileName => $it) {
if ($it->isFile() && $it->getFilename() == 'php-fcgi-starter') {
// set chattr -i
removeImmutable($its->getPathname());
}
}
// now get rid of old stuff
//(but append /* so we don't delete the directory)
$configdir .= '/*';
safe_exec('rm -rf ' . makeCorrectFile($configdir));
}
}
}
示例13: doModel
//.........这里部分代码省略.........
}
// Removing files is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/************************
*** UPGRADE DATABASE ***
************************/
$error_queries = array();
if (file_exists(osc_lib_path() . 'osclass/installer/struct.sql')) {
$sql = file_get_contents(osc_lib_path() . 'osclass/installer/struct.sql');
$conn = getConnection();
$error_queries = $conn->osc_updateDB(str_replace('/*TABLE_PREFIX*/', DB_TABLE_PREFIX, $sql));
}
if ($error_queries[0]) {
// Everything is OK, continue
/**********************************
** EXECUTING ADDITIONAL ACTIONS **
**********************************/
if (file_exists(osc_lib_path() . 'osclass/upgrade-funcs.php')) {
// There should be no errors here
define('AUTO_UPGRADE', true);
require_once osc_lib_path() . 'osclass/upgrade-funcs.php';
}
// Additional actions is not important for the rest of the proccess
// We will inform the user of the problems but the upgrade could continue
/****************************
** REMOVE TEMPORARY FILES **
****************************/
$path = ABS_PATH . 'oc-temp';
$rm_errors = 0;
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
for ($dir->rewind(); $dir->valid(); $dir->next()) {
if ($dir->isDir()) {
if ($dir->getFilename() != '.' && $dir->getFilename() != '..') {
if (!rmdir($dir->getPathname())) {
$rm_errors++;
}
}
} else {
if (!unlink($dir->getPathname())) {
$rm_errors++;
}
}
}
if (!rmdir($path)) {
$rm_errors++;
}
$deleted = @unlink(ABS_PATH . '.maintenance');
if ($rm_errors == 0) {
$message = __('Everything was OK! Your OSClass installation is updated');
} else {
$message = __('Almost everything was OK! Your OSClass installation is updated, but there were some errors removing temporary files. Please, remove manually the "oc-temp" folder');
$error = 6;
// Some errors removing files
}
} else {
$sql_error_msg = $error_queries[2];
$message = __('Problems upgrading the database');
$error = 5;
// Problems upgrading the database
}
} else {
$message = __('Problems copying files. Maybe permissions are not correct');
$error = 4;
// Problems copying files. Maybe permissions are not correct
}
} else {
示例14: execute
public static function execute( $params ) {
// Set progress
Ai1wm_Status::info( __( 'Retrieving a list of all WordPress files...', AI1WM_PLUGIN_NAME ) );
// Set exclude filters
$exclude_filters = ai1wm_content_filters();
// Exclude themes
if ( isset( $params['options']['no_themes'] ) ) {
$exclude_filters[] = 'themes';
}
// Exclude plugins
if ( isset( $params['options']['no_plugins'] ) ) {
$exclude_filters = array_merge( $exclude_filters, array( 'plugins', 'mu-plugins' ) );
} else {
$exclude_filters = array_merge( $exclude_filters, ai1wm_plugin_filters() );
}
// Exclude media
if ( isset( $params['options']['no_media'] ) ) {
$exclude_filters[] = 'uploads';
}
// Get total files
if ( isset( $params['total_files'] ) ) {
$total_files = (int) $params['total_files'];
} else {
$total_files = 0;
}
// Get total size
if ( isset( $params['total_size'] ) ) {
$total_size = (int) $params['total_size'];
} else {
$total_size = 0;
}
// Create map file
$filemap = fopen( ai1wm_filemap_path( $params ) , 'a+' );
try {
// Iterate over content directory
$iterator = new Ai1wm_Recursive_Directory_Iterator( WP_CONTENT_DIR );
// Exclude uploads, plugins or themes
$iterator = new Ai1wm_Recursive_Exclude_Filter( $iterator, $exclude_filters );
// Recursively iterate over content directory
$iterator = new RecursiveIteratorIterator( $iterator, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD );
// Write path line
foreach ( $iterator as $item ) {
if ( $item->isFile() ) {
if ( fwrite( $filemap, $iterator->getSubPathName() . PHP_EOL ) ) {
$total_files++;
// Add current file size
$total_size += filesize( $iterator->getPathname() );
}
}
}
} catch ( Exception $e ) {
// Skip bad file permissions
}
// Set total files
$params['total_files'] = $total_files;
// Set total size
$params['total_size'] = $total_size;
// Close the filemap file
fclose( $filemap );
// Set progress
Ai1wm_Status::info( __( 'Done retrieving a list of all WordPress files.', AI1WM_PLUGIN_NAME ) );
return $params;
}
示例15: _cleanZonefiles
private function _cleanZonefiles()
{
$config_dir = makeCorrectFile(Settings::Get('system.bindconf_directory') . '/domains/');
$this->_logger->logAction(CRON_ACTION, LOG_INFO, 'Cleaning dns zone files from ' . $config_dir);
// check directory
if (@is_dir($config_dir)) {
// create directory iterator
$its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($config_dir));
// iterate through all subdirs, look for zone files and delete them
foreach ($its as $it) {
if ($it->isFile()) {
// remove file
safe_exec('rm -f ' . escapeshellarg(makeCorrectFile($its->getPathname())));
}
}
}
}