Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Php İle Klasör ve İçeriğini Kopyalamak Hakkında.

Konu, 'PHP' kısmında Sosaria tarafından paylaşıldı.

  1. Sosaria

    Sosaria Yeni Üye

    Kayıt:
    8 Ağustos 2018
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    Şehir:
    Rize
    Merhabalar,
    Alttaki gibi bir kod ile kopyalama yapmaya çalışıyorum buna % şu kadar kopyalandı gibi bir uyarı ekleme imkanım var mı dır ? Bir de bu kodu kısaltma imkanım var mıdır ?
    Teşekkürler.
    PHP:
    <?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_dir0strlen($src_dir) - 1);
        if((
    $slash substr($dst_dir, -1)) == "\\" || $slash == "/"$dst_dir substr($dst_dir0strlen($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_dir0777true);
          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("c:\1""d:\1"$UploadDate);
    ?>
     
  2. sefa1471

    sefa1471 Üye

    Kayıt:
    13 Mart 2014
    Mesajlar:
    156
    Beğenilen Mesajlar:
    16
    Meslek:
    Öğrenci
    Şehir:
    Ankara
    Merhabalar.Yapılabilir neden yapılmasın.
    Ajax kullanarak çok kolay bir şekilde yapabilirsiniz. Genel mantığını anlatayım. Php kodu çalıştığında işlemini bitirene kadar sayfa çalışır. Bizde bu özelliğini kullanacağız. Bu cepte kalsın. İkincisi ise sayfa yüklenirken illaki web sitelerinde loading, efekli logo v.b tarzında bir seylere denk gelmişsinizdir. Bunun ismi page loader diye geçer ve istediğiniz örneği google amcaya sorarak bulabilirsiniz. Buda cepte kalsın. Ajax ile gerekli verileri taşıma sayfasına post ederek o sayfadaki yüzdeli dilimi sayfanıza çekebilirsiniz. Umarım doğru bir sekilde anlatabilmişimdir. Takıldığın yer olursa ben buralardayım.
    Kolay gelsin.
     
    Sosaria bunu beğendi.
  3. Sosaria

    Sosaria Yeni Üye

    Kayıt:
    8 Ağustos 2018
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    Şehir:
    Rize
    Dediğiniz şekilde hallettim oldu. Teşekkür ederim. :)