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

首頁 > 編程 > PHP > 正文

一個完整的PHPZIP壓縮類的代碼

2020-03-22 20:17:53
字體:
來源:轉載
供稿:網友
  • 本程序可以快速的實現把我們的文件利用php壓縮類壓縮成我們所需的zip,或者rar 的壓縮包,后綴名可以自定義哦, 壓縮算法是來自國外一個網站抄的。


    調用方法:
    首先實例化,然后傳參。兩個參數。第一個關于你文件地址的一個Array。第二個是要你要保存的壓縮包文件的絕對地址。

    $zipfiles =array("/root/pooy/test1.txt","/root/pooy/test2.txt");$z = new PHPZip();(PS:T不錯的PHP Q扣峮:276167802,驗證:csl)//$randomstr = random(8); $zipfile = TEMP."/photocome_".$groupid.".zip";$z->Zip($zipfiles, $zipfile);

    調用代碼:

     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 html' target='_blank'>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?>

    出處!http://bbs.tsingyuan.cn/forum.php?mod=viewthread&tid=1230
    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    欧美成人免费网| 欧美日韩综合视频网址| 91色p视频在线| 国产精品白嫩初高中害羞小美女| 欧美情侣性视频| 欧美野外wwwxxx| 亚洲男女自偷自拍图片另类| 亚洲性生活视频在线观看| 亚洲欧洲在线免费| 成人午夜黄色影院| 国产成人啪精品视频免费网| 久久久久久久色| www日韩欧美| 亚洲午夜av久久乱码| 日韩高清欧美高清| 亚洲人成网站777色婷婷| 久久av在线看| 久久91亚洲精品中文字幕奶水| 日韩电影免费在线观看中文字幕| 国产男人精品视频| 岛国av一区二区在线在线观看| 亚洲免费视频网站| 欧美一区二区三区四区在线| 2025国产精品视频| 成人在线一区二区| 中文字幕欧美视频在线| 国语自产精品视频在线看| 国产精品久久久久久久久久尿| 日韩欧美在线观看视频| 久久国产精品久久久| 国产精品免费一区二区三区都可以| 久久久www成人免费精品| 91国产精品视频在线| 欧美国产第一页| 国产精品久久久久77777| 亚洲精品福利资源站| 粉嫩老牛aⅴ一区二区三区| 91精品国产九九九久久久亚洲| 欧美激情一区二区三区高清视频| 久久久久久久色| 亚洲一区二区久久久久久久| 久久久久久综合网天天| 亚洲国产成人久久综合一区| 伊人久久男人天堂| 欧美激情性做爰免费视频| 欧洲成人免费视频| 日韩在线一区二区三区免费视频| 日韩欧美亚洲成人| 国产精品视频一区二区三区四| 全亚洲最色的网站在线观看| 亚洲第一天堂无码专区| 中文字幕精品在线| 精品国产31久久久久久| 九九热这里只有精品免费看| 久久久免费在线观看| 亚洲剧情一区二区| 精品久久香蕉国产线看观看亚洲| 中文字幕成人在线| 日韩国产欧美精品一区二区三区| xxxx欧美18另类的高清| 国产视频精品va久久久久久| 日韩免费观看在线观看| 亚洲第一国产精品| 国产欧美日韩免费看aⅴ视频| 日韩欧美在线国产| 国产在线一区二区三区| 91美女高潮出水| 日韩中文字幕在线视频| 国产999精品| 久久精品2019中文字幕| 久久久91精品国产一区不卡| 亚洲欧美三级伦理| 精品国产拍在线观看| 亚洲成人xxx| 精品国产一区二区在线| 亚洲精品一区久久久久久| 97色伦亚洲国产| 成人国产精品免费视频| 亚洲精品成人久久| 日韩小视频在线| 亚洲精品456在线播放狼人| 精品露脸国产偷人在视频| 欧美午夜影院在线视频| x99av成人免费| 亚洲欧洲在线观看| 亚洲精品在线视频| 国产精品稀缺呦系列在线| 91免费在线视频网站| 亚洲国内高清视频| 国产精品美女无圣光视频| 亚洲男人天堂网站| 亚洲精品国产品国语在线| 亚洲人成毛片在线播放| 久久久久久久久久av| 亚洲美女视频网| 91精品国产自产91精品| 久久久久久久999| 亚洲性生活视频在线观看| 亚洲iv一区二区三区| 亚洲字幕在线观看| 久久久亚洲成人| 欧美日韩亚洲国产一区| 亚洲成avwww人| 51视频国产精品一区二区| 亚洲老头老太hd| 欧美国产中文字幕| 国产精品无码专区在线观看| 欧美综合在线第二页| 国产精品扒开腿做爽爽爽视频| 麻豆一区二区在线观看| 国产成人精品国内自产拍免费看| 一区二区三区国产视频| 国产精品白丝jk喷水视频一区| 国产日韩中文字幕| 欧美一级大片在线免费观看| 自拍偷拍亚洲在线| 久久天天躁狠狠躁夜夜av| 欧美日韩一区二区免费在线观看| 精品亚洲国产成av人片传媒| 久久久久久久91| 国产91精品久| 亚洲天堂成人在线视频| 国产精品综合久久久| 亚洲精品久久久久国产| 亚洲天堂av高清| 欧美高清视频在线观看| 69久久夜色精品国产69| 亚洲成人a级网| 91精品久久久久久久久| 亚洲第一页在线| 国内精品400部情侣激情| 中文字幕日韩欧美| 国产精品自拍视频| 欧美另类老女人| 成人免费网站在线| 久久久久久这里只有精品| 日韩免费看的电影电视剧大全| 亚洲高清不卡av| 亚洲国产精品中文| 久久精品国产欧美亚洲人人爽| 亚洲伊人久久大香线蕉av| 国产精品一区二区久久| 日韩少妇与小伙激情| 欧美成年人在线观看| 日韩欧美中文字幕在线播放| 在线亚洲欧美视频| 欧美一级电影免费在线观看| 亚洲iv一区二区三区| 欧美精品九九久久| 亚洲国产成人91精品| www.久久久久久.com| 川上优av一区二区线观看| 原创国产精品91| 国产精品第七十二页| 亚洲第一精品福利| 亚洲自拍偷拍一区| 国产精品xxx视频| 精品一区二区电影| 欧美在线精品免播放器视频| 日韩动漫免费观看电视剧高清| 久久久成人av| 日韩中文av在线| 亚洲国产婷婷香蕉久久久久久| 亚洲国产天堂网精品网站|