成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例

PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例

熱門標(biāo)簽:遼寧ai電銷機(jī)器人價(jià)格 長(zhǎng)沙做地圖標(biāo)注公司 四川保險(xiǎn)智能外呼系統(tǒng)供應(yīng)商 上海做外呼線路的通信公司 地圖標(biāo)注專員怎么樣 福建銀行智能外呼系統(tǒng)價(jià)格 房產(chǎn)中介用的是什么外呼系統(tǒng) 電話機(jī)器人銷售主要負(fù)責(zé)什么 寧波外呼營(yíng)銷系統(tǒng)

本文實(shí)例講述了PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法。分享給大家供大家參考,具體如下:

廢話不多說(shuō),直接上代碼

//這里需要注意該目錄是否存在,并且有創(chuàng)建的權(quán)限
$zipname = 'path/test.zip'
//這是要打包的文件地址數(shù)組
$files = array("mypath/test1.txt","mypath/test2.pdf");
$zip = new ZipArchive();
$res = $zip->open($zipname, ZipArchive::CREATE);
if ($res === TRUE) {
 foreach ($files as $file) {
 //這里直接用原文件的名字進(jìn)行打包,也可以直接命名,需要注意如果文件名字一樣會(huì)導(dǎo)致后面文件覆蓋前面的文件,所以建議重新命名
  $new_filename = substr($file, strrpos($file, '/') + 1);
  $zip->addFile($file, $new_filename);
 }
}
//關(guān)閉文件
$zip->close();

//這里是下載zip文件
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: Binary");
header("Content-Length: " . filesize($zipname));
header("Content-Disposition: attachment; filename=\"" . basename($zipname) . "\"");
readfile($zipname);
exit;

附:這里再為大家提供一個(gè)zip壓縮類:

?php
# 
# PHPZip v1.2 by Sext (sext@neud.net) 2002-11-18
#   (Changed: 2003-03-01)
# 
# Makes zip archive
#
# Based on "Zip file creation class", uses zLib
#
#
class PHPZip
{
  function Zip($dir, $zipfilename)
  {
    if (@function_exists('gzcompress'))
    {  
      $curdir = getcwd();
      if (is_array($dir)) 
      {
          $filelist = $dir;
      }
      else 
      {
        $filelist = $this -> GetFileList($dir);
      }
      if ((!empty($dir))(!is_array($dir))(file_exists($dir))) chdir($dir);
      else chdir($curdir);
      if (count($filelist)>0)
      {
        foreach($filelist as $filename)
        {
          if (is_file($filename))
          {
            $fd = fopen ($filename, "r");
            $content = fread ($fd, filesize ($filename));
            fclose ($fd);
            if (is_array($dir)) $filename = basename($filename);
            $this -> addFile($content, $filename);
          }
        }
        $out = $this -> file();
        chdir($curdir);
        $fp = fopen($zipfilename, "w");
        fwrite($fp, $out, strlen($out));
        fclose($fp);
      }
      return 1;
    } 
    else return 0;
  }
  function GetFileList($dir)
  {
    if (file_exists($dir))
    {
      $args = func_get_args();
      $pref = $args[1];
      $dh = opendir($dir);
      while($files = readdir($dh))
      {
        if (($files!=".")($files!="..")) 
        {
          if (is_dir($dir.$files)) 
          {
            $curdir = getcwd();
            chdir($dir.$files);
            $file = array_merge($file, $this -> GetFileList("", "$pref$files/"));
            chdir($curdir);
          }
          else $file[]=$pref.$files;
        }
      }
      closedir($dh);
    }
    return $file;
  }
  var $datasec   = array();
  var $ctrl_dir   = array();
  var $eof_ctrl_dir = "x50x4bx05x06x00x00x00x00";
  var $old_offset  = 0;
  /**
   * Converts an Unix timestamp to a four byte DOS date and time format (date
   * in high two bytes, time in low two bytes allowing magnitude comparison).
   *
   * @param integer the current Unix timestamp
   *
   * @return integer the current date in a four byte DOS format
   *
   * @access private
   */
  function unix2DosTime($unixtime = 0) {
    $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
    if ($timearray['year']  1980) {
      $timearray['year']  = 1980;
      $timearray['mon']   = 1;
      $timearray['mday']  = 1;
      $timearray['hours']  = 0;
      $timearray['minutes'] = 0;
      $timearray['seconds'] = 0;
    } // end if
    return (($timearray['year'] - 1980)  25) | ($timearray['mon']  21) | ($timearray['mday']  16) |
        ($timearray['hours']  11) | ($timearray['minutes']  5) | ($timearray['seconds'] >> 1);
  } // end of the 'unix2DosTime()' method
  /**
   * Adds "file" to archive
   *
   * @param string  file contents
   * @param string  name of the file in the archive (may contains the path)
   * @param integer the current timestamp
   *
   * @access public
   */
  function addFile($data, $name, $time = 0)
  {
    $name   = str_replace('', '/', $name);
    $dtime  = dechex($this->unix2DosTime($time));
    $hexdtime = 'x' . $dtime[6] . $dtime[7]
         . 'x' . $dtime[4] . $dtime[5]
         . 'x' . $dtime[2] . $dtime[3]
         . 'x' . $dtime[0] . $dtime[1];
    eval('$hexdtime = "' . $hexdtime . '";');
    $fr  = "x50x4bx03x04";
    $fr  .= "x14x00";      // ver needed to extract
    $fr  .= "x00x00";      // gen purpose bit flag
    $fr  .= "x08x00";      // compression method
    $fr  .= $hexdtime;       // last mod time and date
    // "local file header" segment
    $unc_len = strlen($data);
    $crc   = crc32($data);
    $zdata  = gzcompress($data);
    $c_len  = strlen($zdata);
    $zdata  = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug
    $fr   .= pack('V', $crc);       // crc32
    $fr   .= pack('V', $c_len);      // compressed filesize
    $fr   .= pack('V', $unc_len);     // uncompressed filesize
    $fr   .= pack('v', strlen($name));  // length of filename
    $fr   .= pack('v', 0);        // extra field length
    $fr   .= $name;
    // "file data" segment
    $fr .= $zdata;
    // "data descriptor" segment (optional but necessary if archive is not
    // served as file)
    $fr .= pack('V', $crc);         // crc32
    $fr .= pack('V', $c_len);        // compressed filesize
    $fr .= pack('V', $unc_len);       // uncompressed filesize
    // add this entry to array
    $this -> datasec[] = $fr;
    $new_offset    = strlen(implode('', $this->datasec));
    // now add to central directory record
    $cdrec = "x50x4bx01x02";
    $cdrec .= "x00x00";        // version made by
    $cdrec .= "x14x00";        // version needed to extract
    $cdrec .= "x00x00";        // gen purpose bit flag
    $cdrec .= "x08x00";        // compression method
    $cdrec .= $hexdtime;         // last mod time  date
    $cdrec .= pack('V', $crc);      // crc32
    $cdrec .= pack('V', $c_len);     // compressed filesize
    $cdrec .= pack('V', $unc_len);    // uncompressed filesize
    $cdrec .= pack('v', strlen($name) ); // length of filename
    $cdrec .= pack('v', 0 );       // extra field length
    $cdrec .= pack('v', 0 );       // file comment length
    $cdrec .= pack('v', 0 );       // disk number start
    $cdrec .= pack('v', 0 );       // internal file attributes
    $cdrec .= pack('V', 32 );      // external file attributes - 'archive' bit set
    $cdrec .= pack('V', $this -> old_offset ); // relative offset of local header
    $this -> old_offset = $new_offset;
    $cdrec .= $name;
    // optional extra field, file comment goes here
    // save to central directory
    $this -> ctrl_dir[] = $cdrec;
  } // end of the 'addFile()' method
  /**
   * Dumps out file
   *
   * @return string the zipped file
   *
   * @access public
   */
  function file()
  {
    $data  = implode('', $this -> datasec);
    $ctrldir = implode('', $this -> ctrl_dir);
    return
      $data .
      $ctrldir .
      $this -> eof_ctrl_dir .
      pack('v', sizeof($this -> ctrl_dir)) . // total # of entries "on this disk"
      pack('v', sizeof($this -> ctrl_dir)) . // total # of entries overall
      pack('V', strlen($ctrldir)) .      // size of central dir
      pack('V', strlen($data)) .       // offset to start of central dir
      "x00x00";               // .zip file comment length
  } // end of the 'file()' method
} // end of the 'PHPZip' class
?>

用法:

$zipfiles =array("/root/pooy/test1.txt","/root/pooy/test2.txt");
$z = new PHPZip();
//$randomstr = random(8);
$zipfile = TEMP."/photocome_".$groupid.".zip";
$z->Zip($zipfiles, $zipfile);

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP操作zip文件及壓縮技巧總結(jié)》、《php文件操作總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • php利用ZipArchive類操作文件的實(shí)例
  • php ZipArchive實(shí)現(xiàn)多文件打包下載實(shí)例
  • PHP生成zip壓縮包的常用方法示例
  • php解壓縮zip和rar壓縮包文件的方法
  • 實(shí)例介紹PHP中zip_open()函數(shù)用法
  • PHP zip壓縮包操作類完整實(shí)例
  • PHP實(shí)現(xiàn)打包zip并下載功能
  • PHP使用zlib擴(kuò)展實(shí)現(xiàn)GZIP壓縮輸出的方法詳解
  • linux服務(wù)器安裝PHP擴(kuò)展zip,zlib方法
  • 基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問(wèn)題
  • php 解壓zip壓縮包內(nèi)容到指定目錄的實(shí)例
  • php操作zip在不解壓縮包的情況下顯示壓縮包中的圖片
  • 如何使用php生成zip壓縮包

標(biāo)簽:常德 澳門 宜春 深圳 宿遷 工商登記 延安 佛山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例》,本文關(guān)鍵詞  PHP,實(shí),現(xiàn)將,多個(gè),文件,壓,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    一级免费视频| 欧美日韩人妻精品一区二区三区| 精品51国产黑色丝袜高跟鞋| 美女免费观看一区二区三区| 日本伊人午夜精品| 97超碰人人草| 久久久久久久免费| 青青操在线观看视频| 91av在线播放视频| 经典三级一区二区三区视频| 中文字幕777| 疯狂做受xxxⅹ高潮视频免费| 久久免费精品国产久精品久久久久| 欧美欧美全黄| 国产男小鲜肉同志免费| 91精品国产高清自在线看超| 人成网站在线观看| 国产精品999在线观看| 伊人青青综合网| 久久99精品久久久久久三级| 99tv成人影院| 黄色小说在线观看视频| 日韩xxxx视频| 欧美日韩第一页| 性欧美暴力猛交另类hd| 日韩av一区二区三区| 91浏览器在线视频| 国产视频观看一区| 亚洲男同性恋视频| 色七七影院综合| 亚洲国产精品va| 天天操夜夜干| 婷婷色在线播放| 久久久一区二区三区捆绑**| 在线观看美女网站大全免费| 亚洲精品男人的天堂| 亚洲色图 激情小说| 一二三中文字幕在线| 欧美成人video| 国产美女av在线| 成人午夜激情片| 欧美色综合网| 免费黄色网页| 亚洲国产精品一区二区久久恐怖片| 大黄网站在线观看| 久久久久久国产| 国产91精品一区二区麻豆亚洲| 国产精品视频一区二区三区麻豆| 久久综合九色综合97婷婷女人| 欧美日韩中文字幕精品| 欧美一性一交| 欧美日韩一区二区三区四区在线观看| 波多野结衣在线观看一区二区| 日韩精品久久久久久| 国产亚洲综合色| 日本fc2在线观看| 日韩亚洲欧美一区| 成人影视亚洲图片在线| 欧美日韩久久婷婷| 亚洲精品mp4| 久久精品无码一区二区日韩av| 日韩欧美久久久| 一区二区视频在线看| 成人avav影音| v片在线观看| 欧美精品一区二区三区三州| 午夜不卡影院| 综合久久十次| 国产熟女一区二区三区四区| 不卡视频一二三| 亚洲精品色午夜无码专区日韩| 久久精品国产一区二区三区不卡| 污版视频在线观看| 欧美video巨大粗暴18| 一本色道久久综合亚洲精品不卡| bdsm精品捆绑chinese女| 国产精品精品国产一区二区| 亚洲日本电影在线| 国产精品久久一区二区三区| 欧美三级第一页| 欧美日韩国产传媒| 日本aⅴ精品一区二区三区| 九色网com| 黑人精品一区二区| 国产不卡在线观看视频| 色偷偷7777www人| 国产精品18久久久久久久网站| 国产精品欧美日韩一区二区| 亚洲色图美国十次| 四虎免费在线观看| 开心丁香婷婷深爱五月| 蜜桃视频在线观看www社区| 视频精品一区二区| 不卡在线一区| 亚洲综合电影| 日本一区二区三区四区在线观看| mm131亚洲精品| 国产精品jizz在线观看美国| 香蕉精品视频在线| 天天综合中文字幕| 欧美另类精品xxxx孕妇| 亚洲视频在线观看视频| 国产精品99久久久久久大便| 国产农村妇女aaaaa视频| 欧美日韩国产免费一区二区三区| 少妇人妻互换不带套| av一区二区三区免费观看| 日韩高清在线免费观看| 91亚洲va在线va天堂va国| 一二三四在线视频观看社区| 成人高清av在线| 国产成人艳妇aa视频在线| 欧美日韩国产专区| 精品一区二区三区免费站| 日韩欧美在线一区二区三区| 污黄色在线观看| 美日韩精品视频| 亚洲综合中文网| 99国内精品| 日韩最新中文字幕| 亚洲精品蜜桃久久久久久| 亚洲在线偷拍自拍| 亚洲视频在线一区二区| 日韩毛片视频在线看| 亚洲AV无码精品国产| 欧洲精品在线播放| 日韩中文字幕在线观看| 国产精品久久一区二区三区不卡| 2019中文字幕在线| 欧美日韩一卡| 国产女主播在线观看| 国内小视频在线看| а 天堂 在线| 一本大道久久a久久精二百| 激情视频在线观看一区二区三区| 国产欧美亚洲精品a| 男人天堂久久| 爱爱永久免费视频| 久久久9色精品国产一区二区三区| 182在线视频| av资源网一区| av网站导航在线观看免费| 国产精品高清无码在线观看| 天堂在线网站| 91a在线视频| 日韩电影在线观看网站| 欧美综合国产| 久无码久无码av无码| 中文字幕在线播放网址| 91插插插影院| 佐山爱痴汉视频一区二区三区| 99久久综合国产精品| 中文字幕久久熟女蜜桃| 久久久水蜜桃| 91电影91视频| 中文字幕亚洲精品在线观看| 国产亚洲欧美一区| www.18av.com| sm一区二区三区| 亚洲国产欧美久久| 欧美日韩亚洲在线观看| heyzo高清国产精品| 亚洲图区综合| 九九视频免费观看视频精品| 性xxxx奶大欧美高清| 亚洲视频在线二区| 亚洲成熟女性毛茸茸| 亚洲美女色禁图| 日韩欧美一二三| 一级毛片在线播放| 国产免费的av| 初尝黑人巨炮波多野结衣电影| 日韩精品资源| 又粗又硬又爽国产视频| 成人动漫av在线| 成人春色激情网| 国内视频自拍在线视频| 国产熟女精品视频| 新婚的少妇hd中文字幕| 成人动漫av在线| 精品日韩欧美一区二区| 国产91精品在线观看| 日本韩国欧美三级| 亚洲高清视频一区二区| 上原亚衣加勒比在线播放| 最新在线地址| 久久激五月天综合精品| 亚洲综合在线免费观看| 亚洲精彩视频| 亚洲免费在线播放视频| 国产91精品高潮白浆喷水| 中文字幕一区二区三区不卡| 久久久久99精品成人片我成大片| 日韩一级在线视频| 亚洲精品国产一区二区三区| 78国产伦精品一区二区三区| 欧美一区二区三区精品| 黄色三级网站在线观看| 久久精品国产68国产精品亚洲| 日韩伦理在线免费观看| 欧美性高清videossexo| 丰满肉嫩西川结衣av| 国产91精品看黄网站在线观看| 全彩无遮拦全彩口工漫画全彩| 国产精品jizz视频| 国产欧美一区二区色老头| 欧美中文字幕一区二区三区| 性久久久久久久| 一区二区在线观看视频| 91在线精品一区二区| 国产精品久久色| 国产吃瓜黑料一区二区| 精品国产3级a| 欧美 日韩 国产 精品| 7777kkkk成人观看| 欧美另类在线视频| 精品国产18久久久久久| 欧美xxxx网站| 超碰在线免费97| 香蕉视频黄色在线观看| 亚洲一区制服诱惑| 91丨九色丨国产在线| 无人视频在线观看免费| 三上悠亚激情av一区二区三区| 国产传媒免费观看| 亚洲高清一区二| 97xxxxx| 亚洲狼人在线| 亚洲wwwav| 国产精品久久久久久免费播放| 亚洲一区二区三区不卡国产欧美| 免费看的av网站| 日韩精品电影一区二区三区| 国产精品天堂蜜av在线播放| 五月婷婷色丁香| 精品不卡在线视频| 黄色在线免费播放| 波多野结衣啪啪| 91caoporm在线视频| 日韩无码精品一区二区三区| 亚洲午夜剧场| 亚洲国产一区二区精品视频| 午夜影院观看视频免费| 免费观看国产视频| 欧美办公室脚交xxxx| 国产原创在线视频| 成 年 人 黄 色 大 片大 全| 欧洲一区二区av| 色悠悠久久综合网| 成人羞羞网站入口| 伊人久久久大香线蕉综合直播| 国产在线视频卡一卡二| 亚洲黄色高清| 女女同性女同一区二区三区按摩| 久久精品在线播放| 日韩一二三区不卡在线视频| 国产精品久久久久久久久久久久| 天堂资源在线中文精品| 偷拍25位美女撒尿视频在线观看| 日韩精品二区| 久操精品在线| 日本三级电影免费观看| 欧美xxxooo| 老司机成人影院| 91美女片黄在线观| 国产欧美日韩综合一区在线观看| 国产成人亚洲综合91| 中文字幕18页| 97免费资源站| 双性尿奴穿贞c带憋尿| 欧美1区视频| 性欧美xxxx大乳国产app| 手机看片日韩| 艳母动漫在线观看| bestiality新另类大全| 国产卡一卡2卡三卡免费视频| 狠狠擦狠狠操| 一区二区日韩视频| 日韩精品一区国产麻豆| 激情视频在线播放| 国产高清视频免费在线观看| 久久网站免费视频| 亚洲少妇自拍| 欧美成人一区在线| 国产精品人人妻人人爽人人牛| 川上优的av在线一区二区| 久久精品亚洲天堂| 你懂的网站在线观看网址| 亚洲香蕉成人av网站在线观看| 99精品国产高清一区二区麻豆| 欧美午夜精品久久久久免费视| 欧亚精品一区| 丁香花在线电影| av网站免费在线看| 亚洲国产中文字幕| 一区二区三区av在线| 亚洲字幕在线观看| 一区二区日韩视频| 欧美午夜丰满在线18影院| 在线中文免费视频| 91av视频在线| 亚洲情趣在线观看| 在线观看免费国产成人软件| 亚洲精品美女在线| 日韩成人中文字幕| 精品美女在线观看视频在线观看| 色系列之999| 亚洲wwwwww| 黄色一级片在线免费观看| 亚洲精品免费观看| 久蕉在线视频| 天堂www在线а√天堂| 日韩一区二区三区四区五区六区| 国外成人在线视频| 中文字幕在线高清| 国产欧美一区二区三区沐欲| 亚洲第一区第一页| 最新国产在线精品91尤物| 日本丰满少妇黄大片在线观看| 欧美性生交大片免网| 国产精品一二三| 色窝窝无码一区二区三区成人网站| 免费在线看成人av| 国产av一区二区三区| 欧亚乱熟女一区二区在线| 播放灌醉水嫩大学生国内精品| 136福利精品导航| 五月天丁香激情|