Skip to content

Instantly share code, notes, and snippets.

@mavitm
Last active June 3, 2016 19:20
Show Gist options
  • Save mavitm/e17e50a6643a8447a7c70eb191de6525 to your computer and use it in GitHub Desktop.
Save mavitm/e17e50a6643a8447a7c70eb191de6525 to your computer and use it in GitHub Desktop.
/**
 * tam yol ver | klasor var yada yok yazilabilir olsun yeter.
 * @param $kaynak
 * @param $hedef
 * @return bool
 */
public function dosyaKopyala($kaynak,$hedef){

    $hata = array();
    $hedef = str_replace('/',DIRECTORY_SEPARATOR,$hedef);
    $dirs = dirname($hedef);
    $dirs = str_replace(RDIR, '', $dirs);

    if(!empty($dirs)){
        $dirs = explode(DIRECTORY_SEPARATOR,$dirs);
        $dirArr = array();
        for($i = 0; $i < count($dirs); $i++){
            if($i > 0){
                $t = array();
                for($x = 0; $x < $i; $x++){
                    $t[] = $dirs[$x];
                }
                $dirArr[] = implode('/',$t);
            }else{
                $dirArr[] = $dirs[$i];
            }
        }

        $dirArr = array_unique($dirArr);

        if(is_array($dirArr)){
            foreach($dirArr as $dir){
                if($dir == "." || $dir == ".."){continue;}
                if(!is_dir($dir)){
                    if(!mkdir($dir,0777)){
                        $this->hata[] = $dir.' klasörü oluşturulamadı';
                    }
                }
            }
        }
    }

    if(empty($hata)){
        if(!@copy($kaynak,$hedef)){
            $this->hata[] = $kaynak ." ".$hedef." olarak kopyalanamdi";
            return false; //dosya kopyalanamadı
        }else{
            return true; //o iş tamam
        }
    }else{
        $this->hata[] = $kaynak ." gidecegi dizin olusturulmadi.";
        return false; //klasor yoktu dosya kopyalanamadı
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment