PHPでのフォルダーごと上書きコピーする方法
PHPでのフォルダーごと上書きコピーする方法を解説します。
なので再帰呼び出しを行います。
[ylang s]
/********************************************************/
function wp_migration_yuzu_copy_dir($fr_path, $to_path)
/********************************************************/
{
$fr_path = rtrim($fr_path, ‘/’).’/’;
$to_path = rtrim($to_path, ‘/’).’/’;
if (is_dir($fr_path)) {
if (!is_dir($to_path)) {
mkdir($to_path, 0755);
chmod($to_path, 0755);
}
if ($handle = opendir($fr_path)) {
while (false !== ($file = readdir($handle))) {
if ($file === ‘.’ || $file === ‘..’) {
continue;
}
if (is_dir($fr_path.$file)) {
wp_migration_yuzu_copy_dir($fr_path.$file, $to_path.$file);
} else {
copy($fr_path.$file, $to_path.$file);
}
}
closedir($handle);
}
}
return(‘success’);
}
[/yalng]
PHPでのフォルダーごと上書きコピーする方法
通常のコピーでは、フォルダーの中のファイルやフォルダーまではコピーできません。なので再帰呼び出しを行います。
[ylang s]
/********************************************************/
function wp_migration_yuzu_copy_dir($fr_path, $to_path)
/********************************************************/
{
$fr_path = rtrim($fr_path, ‘/’).’/’;
$to_path = rtrim($to_path, ‘/’).’/’;
if (is_dir($fr_path)) {
if (!is_dir($to_path)) {
mkdir($to_path, 0755);
chmod($to_path, 0755);
}
if ($handle = opendir($fr_path)) {
while (false !== ($file = readdir($handle))) {
if ($file === ‘.’ || $file === ‘..’) {
continue;
}
if (is_dir($fr_path.$file)) {
wp_migration_yuzu_copy_dir($fr_path.$file, $to_path.$file);
} else {
copy($fr_path.$file, $to_path.$file);
}
}
closedir($handle);
}
}
return(‘success’);
}
[/yalng]