انجمن عمومی گسترش فناوری آگو
ساخت فایل فشرده به وسیله PHP - نسخه‌ی قابل چاپ

+- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir)
+-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1)
+--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13)
+--- موضوع: ساخت فایل فشرده به وسیله PHP (/showthread.php?tid=2393)



ساخت فایل فشرده به وسیله PHP - agotd - 03-09-2014 10:15 PM

با استفاده از کلاس ZipArchive در PHP به راحتی میتونیم فایلهای فشرده ایجادکنیم.در ادامه یک کد آماده برای فشرده سازی فایلها به وسیله PHP قرار دادم. که میتونید در کدهاتون ازش استفاده کنید.
کد php:
/* creates a compressed zip file */
function create_zip($files = array(),$destination '',$overwrite false) {
    
//if the zip file already exists and overwrite is false, return false
    
if(file_exists($destination) && !$overwrite) { return false; }
    
//vars
    
$valid_files = array();
    
//if files were passed in...
    
if(is_array($files)) {
        
//cycle through each file
        
foreach($files as $file) {
            
//make sure the file exists
            
if(file_exists($file)) {
                
$valid_files[] = $file;
            }
        }
    }
    
//if we have good files...
    
if(count($valid_files)) {
        
//create the archive
        
$zip = new ZipArchive();
        if(
$zip->open($destination,$overwrite ZIPARCHIVE::OVERWRITE ZIPARCHIVE::CREATE) !== true) {
            return 
false;
        }
        
//add the files
        
foreach($valid_files as $file) {
            
$zip->addFile($file,$file);
        }
        
//debug
        //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

        //close the zip -- done!
        
$zip->close();

        
//check to make sure the file exists
        
return file_exists($destination);
    }
    else
    {
        return 
false;
    }


براس استفاده از این تابع باید به صورت زیر عمل کنیم :

کد php:
$files_to_zip = array(
    
'preload-images/1.jpg',
    
'preload-images/2.jpg',
    
'preload-images/5.jpg',
    
'kwicks/ringo.gif',
    
'rod.jpg',
    
'reddit.gif'
);
//if true, good; if false, zip creation failed
$result create_zip($files_to_zip,'my- 

پارامتر اول نام فایلها به صورت آرایه ، پارامتر دوم نام فایل ZIp و پارامتر سوم اگر true باشه و اگر فایل فشرده از قبل موجود باشه overwrite میکنه.