Linux平台下PHP zip模块

34 篇文章 0 订阅
Linux平台下PHP安装zip模块
2011-01-29 14:55

1、依次运行以下命令:
wget http://pecl.php.net/get/zip-1.8.10.tgz  //貌似已经出新版本了zip1.10.2.tgz
tar zxvf zip-1.8.3.tgz
cd zip-1.8.3
/usr/local/php/bin/phpize   (对应的phpize路径)(安装好的php位置)
configure --with-php-config=/usr/local/php/bin/php-config (对应的php-config路径)(php-config文件名不能更改)
make
make install
//此时会在zip/modules/下生成一个zip.so文件,将它拷贝到make之后给的一个路径下,如有同名的,覆盖之。

2、生成的模块路径:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/zip.so   (对应的extensions路径)

3、修改php.ini
extension_dir = "./"修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
增加extension=zip.so

4、重启apache
apache2/bin/apachectl restart

==========================================

php 利用ZipArchive 实现文件打包

 

  1. $filename = "./test/test.zip"; //最终生成的 文件名(含路径)  
  2. if(!file_exists($filename)){  
  3.     //重新生成文件  
  4.     $zip = new ZipArchive();//使用本 类,linux需开启 zlib,windows需取消php_zip.dll前的注释  
  5.     if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {  
  6.         exit('无法打开文件,或 者文件创建失败');  
  7.      }  
  8.     foreach( $datalist as $val){  
  9.         $attachfile = $attachmentDir . $val['filepath'];    //获取原始 文件路径  
  10.         if(file_exists($attachfile)){  
  11.             $zip->addFile( $attachfile , basename($attachfile));//第二个参 数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下  
  12.          }  
  13.      }  
  14.     $zip->close();//关闭  
  15. }  
  16. if( !file_exists($filename)){  
  17.     exit("无法找到文件"); //即使创建,仍有可能失败。。。。  
  18. }  
  19. header("Cache-Control: public");   
  20. header("Content-Description: File Transfer");   
  21. header('Content-disposition: attachment; filename='.basename($filename)); //文件名  
  22. header("Content-Type: application/zip"); //zip格式的  
  23. header("Content-Transfer-Encoding: binary");    //告诉浏览 器,这是二进制文件   
  24. header('Content-Length: '. filesize($filename));    //告诉浏览 器,文件大小  
  25. @readfile($filename);   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值