亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php文件在線壓縮程序類

2024-09-04 11:44:10
字體:
來源:轉載
供稿:網友

提供一款超完美的php文件在線壓縮程序,原理很簡單就是把文件以二進制形式保存了,以前用過利用rar的內核程序,這是php自帶的壓縮功能,實例代碼如下:

  1. set_time_limit(0); 
  2. class phpzip{ 
  3.  
  4.     var $file_count = 0 ; 
  5.     var $datastr_len   = 0; 
  6.     var $dirstr_len = 0; 
  7.     var $filedata = ''//該變量只被類外部程序訪問 
  8.     var $gzfilename
  9.     var $fp
  10.     var $dirstr=''
  11.  
  12.     /* 
  13.     返回文件的修改時間格式. 
  14.     只為本類內部函數調用. 
  15.     */ 
  16.     function unix2dostime($unixtime = 0) { 
  17.         $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime); 
  18.  
  19.         if ($timearray['year'] < 1980) { 
  20.         $timearray['year']    = 1980; 
  21.         $timearray['mon']     = 1; 
  22.         $timearray['mday']    = 1; 
  23.         $timearray['hours']   = 0; 
  24.         $timearray['minutes'] = 0; 
  25.         $timearray['seconds'] = 0; 
  26.         } 
  27.  
  28.         return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | 
  29.                ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); 
  30.     } 
  31.     /* 
  32.     初始化文件,建立文件目錄, 
  33.     并返回文件的寫入權限. 
  34.     */ 
  35.     function startfile($path = 'faisun.zip'){ 
  36.        $this->gzfilename=$path
  37.        $mypathdir=array(); 
  38.        do
  39.         $mypathdir[] = $path = dirname($path); 
  40.        }while($path != '.'); 
  41.        @end($mypathdir); 
  42.        do
  43.         $path = @current($mypathdir); 
  44.         @mkdir($path); 
  45.        }while(@prev($mypathdir)); 
  46.  
  47.        if($this->fp=@fopen($this->gzfilename,"w")){ 
  48.         return true; 
  49.        } 
  50.        return false; 
  51.     } 
  52.     /* 
  53.     添加一個文件到 zip 壓縮包中. 
  54.     */ 
  55.     
  56. function addfile($data$name){ 
  57.         $name     = str_replace('/', '/', $name); 
  58.  
  59.     if(strrchr($name,'/')=='/'return $this->adddir($name); 
  60.  
  61.         $dtime    = dechex($this->unix2dostime()); 
  62.         $hexdtime = 'x' . $dtime[6] . $dtime[7] 
  63.                   . 'x' . $dtime[4] . $dtime[5] 
  64.                   . 'x' . $dtime[2] . $dtime[3] 
  65.                   . 'x' . $dtime[0] . $dtime[1]; 
  66.         eval('$hexdtime = "' . $hexdtime . '";'); 
  67.  
  68.         $unc_len = strlen($data); 
  69.         $crc     = crc32($data); 
  70.         $zdata   = gzcompress($data); 
  71.         $c_len   = strlen($zdata); 
  72.         $zdata   = substr(substr($zdata, 0, strlen($zdata) - 4), 2); 
  73.  
  74.     //新添文件內容格式化: 
  75.         $datastr = "PK"
  76.         $datastr .= "";            // ver needed to extract 
  77.         $datastr .= "";            // gen purpose bit flag 
  78.         $datastr .= "";            // compression method 
  79.         $datastr .= $hexdtime;             // last mod time and date 
  80.         $datastr .= pack('v'$crc);             // crc32 
  81.         $datastr .= pack('v'$c_len);           // compressed filesize 
  82.         $datastr .= pack('v'$unc_len);         // uncompressed filesize 
  83.         $datastr .= pack('v'strlen($name));    // length of filename 
  84.         $datastr .= pack('v', 0);                // extra field length 
  85.         $datastr .= $name
  86.         $datastr .= $zdata
  87.         $datastr .= pack('v'$crc);                 // crc32 
  88.         $datastr .= pack('v'$c_len);               // compressed filesize 
  89.         $datastr .= pack('v'$unc_len);             // uncompressed filesize 
  90.  
  91.  
  92.     fwrite($this->fp,$datastr); //寫入新的文件內容 
  93.     $my_datastr_len = strlen($datastr); 
  94.     unset($datastr); 
  95.  
  96.     //新添文件目錄信息 
  97.         $dirstr = "PK"
  98.         $dirstr .= "";                // version made by 
  99.         $dirstr .= "";                // version needed to extract 
  100.         $dirstr .= "";                // gen purpose bit flag 
  101.         $dirstr .= "";                // compression method 
  102.         $dirstr .= $hexdtime;                 // last mod time & date 
  103.         $dirstr .= pack('v'$crc);           // crc32 
  104.         $dirstr .= pack('v'$c_len);         // compressed filesize 
  105.         $dirstr .= pack('v'$unc_len);       // uncompressed filesize 
  106.         $dirstr .= pack('v'strlen($name) ); // length of filename 
  107.         $dirstr .= pack('v', 0 );             // extra field length 
  108.         $dirstr .= pack('v', 0 );             // file comment length 
  109.         $dirstr .= pack('v', 0 );             // disk number start 
  110.         $dirstr .= pack('v', 0 );             // internal file attributes 
  111.         $dirstr .= pack('v', 32 );            // external file attributes - 'archive' bit set 
  112.         $dirstr .= pack('v',$this->datastr_len ); // relative offset of local header 
  113.         $dirstr .= $name
  114.  
  115.     $this->dirstr .= $dirstr//目錄信息 
  116.  
  117.     $this -> file_count ++; 
  118.     $this -> dirstr_len += strlen($dirstr); 
  119.     $this -> datastr_len += $my_datastr_len
  120.     } 
  121.  
  122.     function adddir($name){ 
  123.        $name = str_replace("/", "/", $name); 
  124.        $datastr = "PK "
  125.  
  126.        $datastr .= pack("v",0).pack("v",0).pack("v",0).pack("v"strlen($name) ); 
  127.        $datastr .= pack("v", 0 ).$name.pack("v", 0).pack("v", 0).pack("v", 0); 
  128.  
  129.        fwrite($this->fp,$datastr); //寫入新的文件內容 
  130.        $my_datastr_len = strlen($datastr); 
  131.        unset($datastr); 
  132.  
  133.        $dirstr = "PK "
  134.        $dirstr .= pack("v",0).pack("v",0).pack("v",0).pack("v"strlen($name) ); 
  135.        $dirstr .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 ); 
  136.        $dirstr .= pack("v", 16 ).pack("v",$this->datastr_len).$name
  137.  
  138.        $this->dirstr .= $dirstr//目錄信息 
  139.  
  140.        $this -> file_count ++; 
  141.        $this -> dirstr_len += strlen($dirstr); 
  142.        $this -> datastr_len += $my_datastr_len
  143.     }//開源代碼Vevb.com 
  144.     function createfile(){ 
  145.        //壓縮包結束信息,包括文件總數,目錄信息讀取指針位置等信息 
  146.        $endstr = "PK" . 
  147.           pack('v'$this -> file_count) . 
  148.           pack('v'$this -> file_count) . 
  149.           pack('v'$this -> dirstr_len) . 
  150.           pack('v'$this -> datastr_len) . 
  151.           ""
  152.  
  153.        fwrite($this->fp,$this->dirstr.$endstr); 
  154.        fclose($this->fp); 
  155.     } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品亚洲综合天堂夜夜| 中文字幕一精品亚洲无线一区| 国产精品91在线观看| 精品视频在线播放色网色视频| 91干在线观看| 亚洲免费福利视频| 久久精品国产精品亚洲| 国产视频精品免费播放| 亚洲精品福利免费在线观看| 国产精品美女主播在线观看纯欲| 在线精品播放av| 97精品欧美一区二区三区| 亚洲视频一区二区三区| 欧美福利在线观看| 国产日产欧美a一级在线| 成人黄色中文字幕| 日韩av三级在线观看| 色噜噜狠狠狠综合曰曰曰88av| 中文字幕亚洲综合| 欧美激情一区二区久久久| 欧美又大又粗又长| 欧美日韩国产第一页| 日韩一区在线视频| 91精品国产91久久久| 国产精品久久久久久久久久99| 亚洲国产私拍精品国模在线观看| 国产精品一区专区欧美日韩| 国产va免费精品高清在线| 欧美裸体xxxx| 精品久久久久久久久久ntr影视| 亚洲国产成人一区| 国产在线98福利播放视频| 亚洲国产天堂网精品网站| 91精品久久久久久久久久入口| 日韩久久精品成人| 午夜免费在线观看精品视频| 国语自产在线不卡| 久久久伊人欧美| 国产拍精品一二三| 国产中文字幕亚洲| 夜夜嗨av色一区二区不卡| 亚洲影院色无极综合| 日韩免费在线观看视频| 日韩一区二区三区在线播放| 国产香蕉一区二区三区在线视频| 国内精品久久久久久中文字幕| 91精品国产777在线观看| 欧美精品成人91久久久久久久| 日韩欧美黄色动漫| 亚洲精品美女视频| 亚洲欧美另类人妖| 国产做受高潮69| 国产精品 欧美在线| 亚洲国产日韩欧美在线99| 日本一区二区三区在线播放| 97久久精品视频| 欧美高清电影在线看| 92版电视剧仙鹤神针在线观看| 国产啪精品视频网站| 亚洲精品在线观看www| 久久精品国产2020观看福利| 亚洲一区二区三区四区在线播放| 日韩av免费在线看| 夜色77av精品影院| 国产成人精品国内自产拍免费看| 色婷婷**av毛片一区| 青青a在线精品免费观看| 欧美大片第1页| 色播久久人人爽人人爽人人片视av| 欧美理论电影网| 亚洲成人在线网| 午夜精品99久久免费| 欧美午夜丰满在线18影院| 亲子乱一区二区三区电影| 91久久久久久久久久| 欧美国产精品va在线观看| 久久精品国产一区| 亚洲国产精品网站| 久久久久久久国产精品| 欧美亚洲视频在线看网址| 欧美网站在线观看| 亚洲欧美精品一区二区| 成人国产精品日本在线| 欧美精品18videos性欧| 欧洲永久精品大片ww免费漫画| 国产视频在线一区二区| 亚洲视频网站在线观看| 国产精品爽爽爽| 精品二区三区线观看| 亚洲人成电影在线观看天堂色| 午夜精品免费视频| 日韩一区在线视频| 亚洲一区二区三区四区在线播放| 久久99国产精品久久久久久久久| 国外成人免费在线播放| 91精品久久久久久久久久久久久久| 欧美成人精品一区二区三区| 中日韩午夜理伦电影免费| 综合网日日天干夜夜久久| 欧美日韩在线第一页| 97人洗澡人人免费公开视频碰碰碰| 91久久精品国产91久久性色| 久久久久久久电影一区| 久久精品国亚洲| 欧美精品九九久久| 亚洲欧美激情四射在线日| 欧美日韩国产成人高清视频| 57pao精品| 国产一区二区三区日韩欧美| 成人免费看吃奶视频网站| 亚洲人在线观看| 日韩电影中文字幕av| 国产亚洲精品美女久久久久| 亚洲国产欧美一区二区三区久久| 亚洲第一精品自拍| 精品亚洲一区二区三区在线观看| 久久青草福利网站| 一区二区三区动漫| 欧美黄色www| 91国偷自产一区二区三区的观看方式| 亚洲成色www8888| 欧洲午夜精品久久久| 国产精品久久久久aaaa九色| 日本中文字幕不卡免费| www.日韩不卡电影av| 不卡中文字幕av| 久久久久国产精品免费| 亚洲一二在线观看| 国产精品久久久久久久久久免费| 中文字幕亚洲情99在线| 久久久久久久久久久91| 日本欧美爱爱爱| 欧美成人免费在线观看| 日韩激情av在线免费观看| 九九热精品视频在线播放| 欧美亚洲伦理www| 18一19gay欧美视频网站| 4k岛国日韩精品**专区| 国产69精品久久久久9999| 亚洲精品国产欧美| 欧美日韩激情美女| 日韩精品久久久久久久玫瑰园| 亚洲精品大尺度| 精品免费在线观看| 尤物yw午夜国产精品视频| 欧美成人免费小视频| 1769国产精品| 欧美日本啪啪无遮挡网站| 黄色成人av网| 欧美激情精品久久久| 久久夜色精品亚洲噜噜国产mv| 亚洲精品欧美极品| 亚洲国产女人aaa毛片在线| 欧美一级视频一区二区| 91久久国产综合久久91精品网站| 亚洲欧洲国产一区| 日韩二区三区在线| 午夜精品久久久久久久男人的天堂| 日韩亚洲一区二区| 国产精品日韩在线一区| 97av在线播放| 国产精品劲爆视频| 黄色成人在线免费| 日本电影亚洲天堂|