diğer bir klasöre dosya kopyalama

3 Cevap php

Ben başka bir klasördeki tüm dosyaları taşımak istiyoruz. Benim kod aşağıdaki gibidir. bu ben templats klasördeki tüm dosyayı kopyalamak istediğiniz klasörü yaptı

$doit = str_replace(" ", "", $slt['user_compeny_name']);
mkdir("$doit");
$source = "templat/";
$target = $doit . "/";
$dir = opendir($source);
while (($file = readdir($dir)) !== false) {
    copy($source . $file, $target . $file);
}

Bu çalışma para cezası. tüm dosyaları kopyalamak ama ilk argüman kopyalamak için bu uyarı verir () fonksiyonu bir dizin olamaz

Herhangi bir kısa zamanda bana yardımcı olabilir

3 Cevap

Readdir diğer dirs dahil olmak üzere bir dizinde all çocuklar, okuyacak, ve 'sanal' dirs gibi. ve .. (kök ve ebeveyn dir link, solunu.) Bu kontrol ve bu örnekleri için copy() fonksiyonu önlemek gerekir.

while (($file = readdir($dir)) !== false)
{
    if(!is_dir($file))
    {
        copy($source.$file, $target.$file);
    }
}

Sen . için muhasebe ve dizinin üstünde .. dosya değildir. Bu kopyalamaya çalışır ilk şey olduğu anlamına gelir "\ şablonu." dizini kopyalamak için çalışırken aynı olurdu.

Tıpkı bir şey eklemek:

if ($file !== "." && $file !== "..")
...

opendir() documentation göre aranan . ve .. içerecektir.

Sen diğer açıklamalarda kodu kullanarak bu dışlamak gerekir.