/
  • کلاس کار کردن با فایل ها و پوشه ها در PHP

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی کلاس کار کردن با فایل ها و پوشه ها در PHP
    نویسنده پیام
    phpgangster آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۹۱ آذر ۴
    اعتبار: 0
    تشکرها : 22
    ( 24 تشکر در 11 ارسال )
    ارسال: #1
    Wink کلاس کار کردن با فایل ها و پوشه ها در PHP
    کنترل داشتن بر روی فایل ها و پوشه ها و در کل اطلاعات یکی از کارهای مهمی است که با زبان PHP میتوان به سادگی انجام داد.

    امکاناتی که کلاس زیر در اختیار شما قرار خواهد داد:

    زیپ کردن یک پوشه
    کد PHP:
    $myVar->create_zip("YourFolder","YourZipNameFile"); 
    باز کردن یک فایل زیپ
    کد PHP:
    $myVar->extract_zip("YourZipNameFile.zip","YourPasteLocation"); 
    کپی کردن یک پوشه
    کد PHP:
    $myVar->copy_directory("Your source directory""target location directory"); 
    پاک کردن یک پوشه
    کد PHP:
    $myVar->recursiveDelete("address of your directory"); 
    فراموش نکنید که کلاس fileManagement را صدا بزنید:
    کد PHP:
    $myVar = new fileManagement(); 

    کد PHP:
    <?php
    /**
    * @author Peyman Aslani
     * @desc Work with files and folders in PHP
     * @version 1.0.1
     * @example $myVar = new fileManagement(); $myVar->functions($var1,$var2,...);
     */
    class fileManagement 
    {
        
    /**
        * this function creates a zip file from a folder
        * @param the name of the folder you want to zip it: $folderName
        * @param the name of zip file you want to create: $zipFileName
        * @return true or false
        * @example  if($myVar->create_zip("yourFolder","YourZipNameFile"))
        *           {
        *               echo "folder has been ziped";
        *           }
        *           else
        *           {
        *               echo "can not zip this folder";
        *           }
        */
        
    public function create_zip($folderName,$zipFileName)
        {
            
    $zip = new ZipArchive();
            if(
    is_dir($folderName))
            {
                
    $zip_archive $zip->open($zipFileName.".zip",ZIPARCHIVE::CREATE);
                if(
    $zip_archive === true)
                {
                    
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($folderName));
                    foreach (
    $iterator as $key=>$value)
                    {
                        
    $zip->addFile(realpath($key), $key);
                    }
                    
    $zip->close();
                    if(
    file_exists($zipFileName.".zip"))
                    {
                        return 
    true;
                    }
                    else 
                    {
                        return 
    false;
                    }
                }
            }
            else
            {
                return 
    false;
            }
        }
        
        
    /**
         * this function extracts a zip file
         * @param your zip file: $zipFileName
         * @param Location in which you want to extract: $pasteLocation
         * @return true or false
         * @example if($myVar->extract_zip("YourZipNameFile.zip","YourPasteLocation"))
         *          {
         *              echo "folder has been extract";
         *          }
         *          else
         *          {
         *              echo "can not extract folder";
         *          }
         */
        
    public function extract_zip($zipFileName,$pasteLocation)
        {
            if(!
    is_dir($pasteLocation))
            {
                
    mkdir($pasteLocation);
            }
            
    $zip = new ZipArchive();
            if (
    $zip->open($zipFileName) === TRUE)
            {
                for(
    $i 0$i $zip->numFiles$i++)
                {
                    
    $zip->extractTo($pasteLocation, array($zip->getNameIndex($i)));
                }
                
    $zip->close();
                if(
    is_dir($pasteLocation) or is_file($pasteLocation))
                {
                    return 
    true;
                }
                else
                {
                    return 
    false;
                }
            }
            else
            {
                return 
    false;
            }
        }
         
    /**
         * 
         * this function copies a directory to another directory
         * @param Your source directory: $source
         * @param target location directory: $destination
         * @return No return
         */
        
    public function copy_directory$source$destination 
        {
            if ( 
    is_dir$source ) ) 
            {
                @
    mkdir$destination );
                
    $directory dir$source );
                while ( 
    FALSE !== ( $readdirectory $directory->read() ) ) 
                {
                    if ( 
    $readdirectory == '.' || $readdirectory == '..' 
                    {
                        continue;
                    }
                    
    $PathDir $source '/' $readdirectory
                    if ( 
    is_dir$PathDir ) ) 
                    {
                        
    self::copy_directory$PathDir$destination '/' $readdirectory );
                        continue;
                    }
                    
    copy$PathDir$destination '/' $readdirectory );
                }
         
                
    $directory->close();
            }
            else 
            {
                
    copy$source$destination );
            }
        }
        
        
    /**
         * 
         * this function deletes a directory
         * @param address of your directory: $directory
         * @return true or false
         */
        
    public function recursiveDelete($directory)
        {
            
    // if the path is not valid or is not a directory ...
            
    if(!file_exists($directory) || !is_dir($directory))
            {
                return 
    false;
            }
            elseif(!
    is_readable($directory))// ... if the path is not readable
            
    {
                return 
    false;
            }
            else 
    // ... else if the path is readable
            
    {
                
    // open the directory
                
    $handle opendir($directory);
                
                
    // and scan through the items inside
                
    while (false !== ($item readdir($handle)))
                {
                    
    // if the filepointer is not the current directory
                    // or the parent directory
                    
    if($item != '.' && $item != '..')
                    {
                        
    // we build the new path to delete
                        
    $path $directory.'/'.$item;
                        
                        
    // if the new path is a directory
                        
    if(is_dir($path)) 
                        {
                            
    // we call this function with the new path
                            
    self::recursiveDelete($path);
                        }
                        else 
    // if the new path is a file
                        
    {
                            
    // remove the file
                            
    unlink($path);
                        }
                    }
                }
                
                
    // close the directory
                
    closedir($handle);
                
                
    // try to delete the now empty directory
                
    if(@!rmdir($directory))
                {
                    return 
    false;
                }
                
                return 
    true;
            }
        }
    }
    ?>
    __________________________________________________________________________
    یک آدم موفق میگه : سخته ولی ممکنهBlush
    یک آدم ناموفق میگه: ممکنه ولی سختهHuh
    ۱۳۹۱ آذر ۸ ۰۳:۰۲ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : molana Reza hidensoft Busaba M.J masato webnevesht Y.P.Y
    abdollahpor آفلاین
    عضو جدید
    **

    ارسال‌ها: 28
    تاریخ عضویت: ۱۳۹۱ تير ۴
    اعتبار: 0
    تشکرها : 19
    ( 0 تشکر در 0 ارسال )
    ارسال: #2
    RE: کلاس کار کردن با فایل ها و پوشه ها در PHP
    ببخشید من میخام حذف کنم پوشه هارو ..ولی کار نمیکنه ..قبلا حذف میکرد ولی الان حذف نمیکنه ..با اینکه توابع رو دوباره کپی کردم ..ولی بازم فایده نداشت....فایل هارو حذف میکنه ..ولی پوشه هارو نه ...چی کارش باید بکنم ممنون
    (آخرین ویرایش در این ارسال: ۱۳۹۳ شهريور ۱۰ ۱۰:۴۸ صبح، توسط Y.P.Y.)
    ۱۳۹۲ خرداد ۵ ۰۷:۲۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    phpgangster آفلاین
    عضو جدید
    **

    ارسال‌ها: 32
    تاریخ عضویت: ۱۳۹۱ آذر ۴
    اعتبار: 0
    تشکرها : 22
    ( 24 تشکر در 11 ارسال )
    ارسال: #3
    RE: کلاس کار کردن با فایل ها و پوشه ها در PHP
    دلیلش باید Permission باشه باید دسترسی بدید به پوشه ها، تست کنید امیدوارم جواب بده
    http://stackoverflow.com/questions/51255...-using-ftp
    __________________________________________________________________________
    یک آدم موفق میگه : سخته ولی ممکنهBlush
    یک آدم ناموفق میگه: ممکنه ولی سختهHuh
    ۱۳۹۲ خرداد ۶ ۰۶:۳۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    ali-ro آفلاین
    عضو جدید
    **

    ارسال‌ها: 1
    تاریخ عضویت: ۱۳۹۳ شهريور ۹
    اعتبار: 0
    تشکرها : 0
    ( 0 تشکر در 0 ارسال )
    ارسال: #4
    RE: کلاس کار کردن با فایل ها و پوشه ها در PHP
    با سلام و تشکر
    من کد فایل منیجری رو که گفتید رو توی یک فایل با نام index.php کپی کردم ولی وقتی اون پوشه رو باز می کنم هیج اتفاقی نمیفته.
    من خیلی تازه کارم لطفا راهنمایی کنید.
    ۱۳۹۳ شهريور ۹ ۱۲:۴۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS