PHP 使用 zLib 压缩多个文件

发布于 2024-10-20 00:06:09 字数 474 浏览 5 评论 0 原文

$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 );

上面的代码可以工作,但只有一个文件被添加到存档中。使用 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_in,1024); 
    } 
    $output[$file] = $temp; 
    fclose($fp_in); 
} 

$output = implode('"',$output);

$zp = gzopen( 'sequences/backup.gz', "w9" );
gzwrite( $zp, $output );
gzclose( $zp );

The code above works but only one file is added to the archive. What is the best way to add multiple files to a archive using zLib?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼角的笑意。 2024-10-27 00:06:09
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');

这是在蒂姆的帮助下更新的代码,谢谢!

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');

Here is the updated code, with the help of Tim, thanks!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文