İçeriğe geç

PHP Dizin kopyalama fonksiyonu

PHP Dizin kopyalama fonksiyonu adlı makalemizden hepinize merhabalar,

Aslında bu posta makale demek çok doğru olmaz ancak uzun bir aranın ardından tekrar yeni bir yazı yazmak beni heyecanlandırdı sanırım ve itiraf etmek gerekirse baya özlemişimde 🙂 Bu yıl maalesef çok fazla blogla ilgilenecek vakit ve konu bulamadım. Bu yüzden yeni yıl planlarım arasında çok daha fazla makale ve daha ağır konularla ilgili yazılar yazmayı düşünüyorum. Belki videoda çekebiliriz artık duruma göre hareket edeceğiz 🙂

PHP’de bildiğiniz üzere içi dolu dizinleri direk olarak silemiyoruz ve direk kopyalayamıyoruz. Bu yüzden basit ama etkili bir fonksiyon hazırladım. Konu fazla dağılmadan hemen konumuza dönerek dizin kopyalama fonksiyonumuzu sizlerle paylaşmak istiyorum.

<?php

if (!function_exists('copy_dir'))
{
    /**
     * Copy directory
     *
     * @param string $src
     * @param string $dst
     */
    function copy_dir($src, $dst)
    {
        if (is_dir($src)) {
            if (!is_dir($dst)) mkdir($dst);
            $files = scandir($src);
            foreach ($files as $file)
            {
                if ($file != "." and $file != "..")
                {
                    copy_dir("$src/$file", "$dst/$file");
                }
            }
        } else if (file_exists($src)) {
             copy($src, $dst);
        }
    }
}

Fonksiyonumuz iki adet parametre alıyor. İlk parametrede kopyalamak istediğimiz dizin yolunu, ikinci parametremizde ise kopyalanacak konumu giriyoruz. Eğer var olan bir dizine kopyalamak yapmaya çalışıyorsunuz kopyalanacak içeriği mevcut dizine ekler ancak kopyalanacak konum yoksa önce dizini oluşturup sonra kopyalar. Örnek kullanım:

copy_dir('/public_html/upload', '/public_html/yedekupload');

PHP dizin kopyalama fonksiyonu adlı konumuz şimdilik buraya kadar. Kendinize iyi bakın faydalı olması dileğiyle :))

İlgili Konu: PHP Dizin Silme Fonksiyonu

Kategori:PHP

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir