Arkadaşlar bazen duyuyorum, kurduğu dizinden başka dizine dosyaları taşımak istiyorlar. Aynı şekilde kopyalamak istiyorlar. Araştırdım güzel birşey buldum. Ben denedim oldu.
<?php
function dircopy($src_dir, $dst_dir,$UploadDate=false, $verbose = false, $use_cached_dir_trees = false)
{
static $cached_src_dir;
static $src_tree;
static $dst_tree;
$num = 0;
if(($slash = substr($src_dir, -1)) == "\\" || $slash == "/") $src_dir = substr($src_dir, 0, strlen($src_dir) - 1);
if(($slash = substr($dst_dir, -1)) == "\\" || $slash == "/") $dst_dir = substr($dst_dir, 0, strlen($dst_dir) - 1);
if (!$use_cached_dir_trees || !isset($src_tree) || $cached_src_dir != $src_dir)
{
$src_tree = get_dir_tree($src_dir,true,$UploadDate);
$cached_src_dir = $src_dir;
$src_changed = true;
}
if (!$use_cached_dir_trees || !isset($dst_tree) || $src_changed)
$dst_tree = get_dir_tree($dst_dir,true,$UploadDate);
if (!is_dir($dst_dir)) mkdir($dst_dir, 0777, true);
foreach ($src_tree as $file => $src_mtime)
{
if (!isset($dst_tree[$file]) && $src_mtime === false)
mkdir("$dst_dir/$file");
elseif (!isset($dst_tree[$file]) && $src_mtime || isset($dst_tree[$file]) && $src_mtime > $dst_tree[$file])
{
if (copy("$src_dir/$file", "$dst_dir/$file"))
{
if($verbose) echo "Copied '$src_dir/$file' to '$dst_dir/$file'<br>\r\n";
touch("$dst_dir/$file", $src_mtime);
$num++;
} else
echo "<font color='red'>File '$src_dir/$file' could not be copied!</font><br>\r\n";
}
}
return $num;
}
function get_dir_tree($dir, $root = true,$UploadDate)
{
static $tree;
static $base_dir_length;
if ($root)
{
$tree = array();
$base_dir_length = strlen($dir) + 1;
}
if (is_file($dir))
{
if($UploadDate!=false)
{
if(filemtime($dir)>strtotime($UploadDate))
$tree[substr($dir, $base_dir_length)] = date('Y-m-d H:i:s',filemtime($dir));
}
else
$tree[substr($dir, $base_dir_length)] = date('Y-m-d H:i:s',filemtime($dir));
}
elseif ((is_dir($dir) && substr($dir, -4) != ".svn") && $di = dir($dir) )
{
if (!$root) $tree[substr($dir, $base_dir_length)] = false;
while (($file = $di->read()) !== false)
if ($file != "." && $file != "..")
get_dir_tree("$dir/$file", false,$UploadDate);
$di->close();
}
if ($root)
return $tree;
}
$UploadDate = '2008-05-23 13:34:46';
dircopy("Kopyalanmasını istediğiniz dizin", "Kopyalanmasını istediğiniz yer",$UploadDate);
?>dircopy("
Kopyalanmasını istediğiniz dizin", "
Kopyalanmasını istediğiniz yer",$UploadDate);
altını çizdiğim yerleri kendinize göre değiştirirseniz taşıma/kopyalama işlemini çok kısa sürede yapmış olursunuz.