本文整理汇总了PHP中_copy_dir函数的典型用法代码示例。如果您正苦于以下问题:PHP _copy_dir函数的具体用法?PHP _copy_dir怎么用?PHP _copy_dir使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了_copy_dir函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _copy_dir
/**
* Copies a directory from one location to another via the WordPress Filesystem Abstraction.
* Assumes that WP_Filesystem() has already been called and setup.
*
* This is a temporary function for the 3.1 -> 3.2 upgrade only and will be removed in 3.3
*
* @ignore
* @since 3.2.0
* @see copy_dir()
*
* @param string $from source directory
* @param string $to destination directory
* @param array $skip_list a list of files/folders to skip copying
* @return mixed WP_Error on failure, True on success.
*/
function _copy_dir($from, $to, $skip_list = array() ) {
global $wp_filesystem;
$dirlist = $wp_filesystem->dirlist($from);
$from = trailingslashit($from);
$to = trailingslashit($to);
$skip_regex = '';
foreach ( (array)$skip_list as $key => $skip_file )
$skip_regex .= preg_quote($skip_file, '!') . '|';
if ( !empty($skip_regex) )
$skip_regex = '!(' . rtrim($skip_regex, '|') . ')$!i';
foreach ( (array) $dirlist as $filename => $fileinfo ) {
if ( !empty($skip_regex) )
if ( preg_match($skip_regex, $from . $filename) )
continue;
if ( 'f' == $fileinfo['type'] ) {
if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) ) {
// If copy failed, chmod file to 0644 and try again.
$wp_filesystem->chmod($to . $filename, 0644);
if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) )
return new WP_Error('copy_failed', __('Could not copy file.'), $to . $filename);
}
} elseif ( 'd' == $fileinfo['type'] ) {
if ( !$wp_filesystem->is_dir($to . $filename) ) {
if ( !$wp_filesystem->mkdir($to . $filename, FS_CHMOD_DIR) )
return new WP_Error('mkdir_failed', __('Could not create directory.'), $to . $filename);
}
$result = _copy_dir($from . $filename, $to . $filename, $skip_list);
if ( is_wp_error($result) )
return $result;
}
}
return true;
}
示例2: _copy_dir
/**
* Copies a directory from one location to another via the WordPress Filesystem Abstraction.
* Assumes that WP_Filesystem() has already been called and setup.
*
* This is a temporary function for the 3.1 -> 3.2 upgrade, as well as for those upgrading to
* 3.7+
*
* @ignore
* @since 3.2.0
* @since 3.7.0 Updated not to use a regular expression for the skip list
* @see copy_dir()
*
* @global WP_Filesystem_Base $wp_filesystem
*
* @param string $from source directory
* @param string $to destination directory
* @param array $skip_list a list of files/folders to skip copying
* @return mixed WP_Error on failure, True on success.
*/
function _copy_dir($from, $to, $skip_list = array())
{
global $wp_filesystem;
$dirlist = $wp_filesystem->dirlist($from);
$from = trailingslashit($from);
$to = trailingslashit($to);
foreach ((array) $dirlist as $filename => $fileinfo) {
if (in_array($filename, $skip_list)) {
continue;
}
if ('f' == $fileinfo['type']) {
if (!$wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE)) {
// If copy failed, chmod file to 0644 and try again.
$wp_filesystem->chmod($to . $filename, FS_CHMOD_FILE);
if (!$wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE)) {
return new WP_Error('copy_failed__copy_dir', __('Could not copy file.'), $to . $filename);
}
}
} elseif ('d' == $fileinfo['type']) {
if (!$wp_filesystem->is_dir($to . $filename)) {
if (!$wp_filesystem->mkdir($to . $filename, FS_CHMOD_DIR)) {
return new WP_Error('mkdir_failed__copy_dir', __('Could not create directory.'), $to . $filename);
}
}
/*
* Generate the $sub_skip_list for the subdirectory as a sub-set
* of the existing $skip_list.
*/
$sub_skip_list = array();
foreach ($skip_list as $skip_item) {
if (0 === strpos($skip_item, $filename . '/')) {
$sub_skip_list[] = preg_replace('!^' . preg_quote($filename, '!') . '/!i', '', $skip_item);
}
}
$result = _copy_dir($from . $filename, $to . $filename, $sub_skip_list);
if (is_wp_error($result)) {
return $result;
}
}
}
return true;
}
示例3: _copy_dir
function _copy_dir($dir_name, $new_dir)
{
if (!is_dir($new_dir)) {
mkdir($new_dir, 0777, true);
}
if (!(is_dir($dir_name) && ($dh = opendir($dir_name)))) {
return true;
}
while (($file = readdir($dh)) !== false) {
if (substr($file, 0, 1) == '.') {
continue;
}
if (is_dir($dir_name . '/' . $file)) {
_copy_dir($dir_name . '/' . $file, $new_dir . '/' . $file);
} elseif (file_exists($new_dir . '/' . $file) && file_get_contents($dir_name . '/' . $file) != file_get_contents($new_dir . '/' . $file)) {
echo <<<END_of_TEXT
"{$new_dir}/{$file}" already exists.
END_of_TEXT;
} else {
copy($dir_name . '/' . $file, $new_dir . '/' . $file);
}
}
closedir($dh);
return true;
}