یه مشکل در اجرای تابع smartcopy

MRB COMPANY

Member
سلام به همه دوستان
من این کد رو از php.net گرفتم ولی یه ارور کوچیک میده که کل کارمو زمین زده :lol:
PHP:
    function smartCopy($source, $dest, $options=array('folderPermission'=>0755,'filePermission'=>0755))
    {
        $result=false;
       
        if (is_file($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if (!file_exists($dest)) {
                    cmfcDirectory::makeAll($dest,$options['folderPermission'],true);
                }
                $__dest=$dest."/".basename($source);
            } else {
                $__dest=$dest;
            }
            $result=copy($source, $__dest);
            chmod($__dest,$options['filePermission']);
           
        } elseif(is_dir($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if ($source[strlen($source)-1]=='/') {
                    //Copy only contents
                } else {
                    //Change parent itself and its contents
                    $dest=$dest.basename($source);
                    @mkdir($dest);
                    chmod($dest,$options['filePermission']);
                }
            } else {
                if ($source[strlen($source)-1]=='/') {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                } else {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                }
            }

            $dirHandle=opendir($source);
            while($file=readdir($dirHandle))
            {
                if($file!="." && $file!="..")
                {
                     if(!is_dir($source."/".$file)) {
                        $__dest=$dest."/".$file;
                    } else {
                        $__dest=$dest."/".$file;
                    }
                    //echo "$source/$file ||| $__dest<br />";
                    $result=smartCopy($source."/".$file, $__dest, $options);
                }
            }
            closedir($dirHandle);
           
        } else {
            $result=false;
        }
        return $result;
   }
این کد در حالت عادی کار میکنه و ارور نمیده ولی وقتی این کد رو میزنم اجرا شه :
PHP:
smartCopy('test.php','folder/sub/sub1/sub3/test.jpg');
یعنی یه فایلی رو کپی کنه داخل پوشه هایی که وجو نداره نمیتونه و ارور میده
من می خوام خودش بصورت خودکار هرچنتا پوشه هستو درست کنه باید چه تغییری تو کد بدم؟

ممنون
 

MRB COMPANY

Member
یکی بمن کمک کنه دیگه!
بنظرم مشکل کد از اینه
PHP:
cmfcDirectory::makeAll($dest,$options['folderPermission'],true);

چون این کد ارور میده!!!
اگه یه تابع دارین که آدرس میگیره و تمام پوشه ها رو اگه نبود خودش درست میکنه رو فکر کنم اگه بجای این بزاریم کار میکنه
 

جدیدترین ارسال ها

بالا