PHP使用zLib压缩多个文件
上面的代码可以工作,但只有一个文件被添加到存档中。使用zLib将多个文件添加到存档中的最佳方法是什么PHP使用zLib压缩多个文件,php,zlib,Php,Zlib,上面的代码可以工作,但只有一个文件被添加到存档中。使用zLib将多个文件添加到存档中的最佳方法是什么 $files = array("images/1.jpg", "images/2.jpg", "images/3.jpg"); foreach($files as $file){ $temp = null; $fp_in = fopen($file,'rb'); while(!feof($fp_in)){ $temp .= fread($fp_i
$files = array("images/1.jpg", "images/2.jpg", "images/3.jpg");
foreach($files as $file){
$temp = null;
$fp_in = fopen($file,'rb');
while(!feof($fp_in)){
$temp .= fread($fp_in,1024);
}
$output[$file] = $temp;
fclose($fp_in);
}
$output = implode('"',$output);
$zp = gzopen( 'sequences/backup.gz', "w9" );
gzwrite( $zp, $output );
gzclose( $zp );
这是更新后的代码,在Tim的帮助下,谢谢 gz只是一种压缩技术,而不是归档技术。这就是为什么在unix上经常看到
.tar.gz
文件的原因.tar
用于合并所有文件和压缩归档文件的.gz
。那么正确的过程是压缩它们,然后统一它们?有没有一种方法可以使用zLib和PHP实现这一点?
require 'Tar.php';
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling
$v_list = array("images/1.jpg", "images/2.jpg", "images/3.jpg");
$tar_object->createModify($v_list, "install");
function compress( $srcFileName, $dstFileName ){
// getting file content
$fp = fopen( $srcFileName, "r" );
$data = fread ( $fp, filesize( $srcFileName ) );
fclose( $fp );
// writing compressed file
$zp = gzopen( $dstFileName, "w9" );
gzwrite( $zp, $data );
gzclose( $zp );
echo 'success';
}
compress("tarname.tar","tarname.tar.gz");
unlink('tarname.tar');